20180608
Topic source[root@instance-b3p58gb0 helloworld]# /usr/bin/python Server.py Waiting for conection... Accept new connection from x.x.x.x:14507... Connection from x.x.x.x:14507 closed. Exception in thread Thread-1: Traceback (most recent call last): File "/usr/local/python36/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/usr/local/python36/lib/python3.6/threading.py", line 864, in run self._target(self._args, *self._kwargs) File "Server.py", line 14, in tcplink data = sock.recv(1024) OSError: [Errno 9] Bad file descriptor
请问错误堆栈这个样子,是哪里问题,百度没搜出来,请大佬答疑解惑。
- 1
Gday小海狮
client.py如下: import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('127.0.0.1',9999)) print(s.recv(1024).decode('utf-8')) for data in [b'Michael',b'Tracy',b'Sarah']: s.send(data) print(s.recv(1024).decode('utf-8')) s.send(b'exit') s.close()
server.py如下: import socket,threading,time s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind(('127.0.0.1',9999)) s.listen(5) print('Waiting for connection...')
def tcplink(sock,addr): print('Accept new connection from %s:%s' % addr) sock.send(b'Welcome!') while True: data = sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8') == 'exit': break sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8')) sock.close() print('Connection from %s : %s closed.' % addr) while True: sock, addr = s.accept() t = threading.Thread(target=tcplink, args=(sock,addr)) t.start()
遇到的问题和解决办法如下: 1.问题: (base) c:\work>python server.py Waiting for connection... Traceback (most recent call last): File "server.py", line 8, in <module> t = threading.Thread(target=tcplink, args=(sock,addr)) NameError: name 'threading' is not defined 办法:import threading
问题:(base) c:\work>python server.py Waiting for connection... Traceback (most recent call last): File "server.py", line 8, in <module> t = threading.Thread(target=tcplink, args=(sock,addr)) NameError: name 'tcplink' is not defined 办法:把定义的tcplink方法放在while前面
问题: (base) c:\work>python server.py Waiting for connection... Accept new connection from 127.0.0.1:56097 Exception in thread Thread-1: Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\threading.py", line 916, in _bootstrap_inner self.run() File "C:\ProgramData\Anaconda3\lib\threading.py", line 864, in run self._target(self._args, *self._kwargs) File "server.py", line 11, in tcplink time.sleep(1) NameError: name 'time' is not defined 办法:import time