有个小问题
Topic sourceTraceback (most recent call last): File "C:\work\TCPserver.py", line 15, in <module> s.bind(('127.0.0.1',8888)) OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 [Finished in 0.2s]
这个问题好像是因为之前那个server程序还没关
python 远程主机强迫关闭了一个现有的连接 socket 超时设置 errno 10054
这里有解答,先码上,明天再看 http://blog.csdn.net/onedreamer/article/details/6748510
python 远程主机强迫关闭了一个现有的连接 socket 超时设置 errno 10054
我的这个问题是客户端的退出函数位置错了,你可以看下自己的源代码
服务器:
import socket,time,threading 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) s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
监听端口
s.bind(('127.0.0.1',8888)) s.listen(5) print('Waiting for connection...') while True:
#接受一个新连接
sock,addr=s.accept()
#创建新线程来处理TCP连接
t=threading.Thread(target=tcplink,args=(sock,addr))
t.start()
#每个连接都创建新进
客户端: import socket
创建一个socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
建立连接
s.connect(('127.0.0.1',8888))
接收欢迎消息
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()
- 1
南海的椰子
我用的是sublime text 3进行编译的,使用ctrl+b先运行服务器再运行客户端,提示错误:
我理解是自带控制台一次只能运行一个程序。于是我安装了sublimeREPL插件运行,运行几次都是正常的,但是再运行就会出错:
用系统cmd运行也是这个错误,需要进程里面把python.exe关闭了才能重新运行。
【请问为什么会出现这个情况??代码里面都有关闭套接字啊?????】