|
我在用python做一个服务端,持续接受多个客户端传输的数据。
做了个测试,遇到个奇怪的问题,
测试中做的很简单,就是每个客户端链接上来后,打印出来客户端的ip和端口。
代码如下:
import sys
import socket
import threading
listenTo=True
def dealClient(client,addr):
print(addr)
def main():
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind(("0.0.0.0",9999))
s.listen(10)
while listenTo:
try:
client,addr=s.accept()
trd=threading.Thread(target=dealClient,args=(client,addr))
trd.start()
except Exception,e:
print('listen except:'+e)
s.close()
sys.exit()
if __name__ == '__main__':
main()
现在问题是,第一个客户端链接上后,服务端打印地址和端口正常。
第二个客户端链接时,服务器就会持续的打印第二个客户端地址,每打印一次端口号+1,应该是服务器一直持续接收链接。
如果只有一个客户端,客户端断开再链接也是正常的。
各位大神谁帮忙分析下,谢谢!
|
|