关闭后重新连接客户端到服务器
我使用的代码只能在4个不同的端口上连接4个连接。 此代码正在工作,但是当客户端关闭连接时,它不能重新建立连接。 连接被拒绝。 认为这是因为线程已关闭。 如何解决这个问题? 我无法更改端口号码...
enter code here
- 编码:cp1252 -
从套接字导入*
BUFF = 25
def服务器(主机,端口):
def response(key):
return 'Server response: ' + key
def handler(clientsock,addr):
while 1:
data = clientsock.recv(BUFF)
if not data: break
print repr(addr) + ' recv:' + repr(data)
clientsock.send(response(data))
print repr(addr) + ' sent:' + repr(response(data))
if "close" == data.rstrip(): break # type 'close' on client console to close connection from the server side
clientsock.close()
print addr, "- closed connection" #log on console
addr = (host, port)
serversock = socket(AF_INET, SOCK_STREAM)
serversock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
serversock.bind(addr)
serversock.listen(1)
clientsock, addr = serversock.accept()
handler(clientsock, addr)
如果name ==' main ':导入线程
HOST = '192.168.0.12'
PORTS = [10001,10002,10003,10004]
threads = []
for port in PORTS:
th = threading.Thread(target=server, args=(HOST, port))
th.start()
threads.append(th)
我对Python不熟悉,但我会给它一个镜头。
在你的线程中,你可能需要添加一个循环来接受新的连接。 serversock.accept()和调用“处理程序”将在该循环中。 这应该允许客户端在客户端关闭连接时再次连接到服务器。
这里是我怀疑它应该看起来(不包括错误检查和不知道Python):
while 1:
clientsock, addr = serversock.accept()
handler(clientsock,addr);
链接地址: http://www.djcxy.com/p/56437.html