这是我的服务器代码,我已经写好了self.set_reuse_addr():
class ImageServer(asyncore.dispatcher):
def __init__(self,port):
asyncore.dispatcher.__init__(self)
self.client = None
self.port = port
self.clientSocket = None
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.set_reuse_addr()
self.bind(("192.168.11.2",self.port))
self.listen(20)
print "[*] Listening ..."仍然得到这个错误,端口重用
self.bind(("192.168.11.2",self.port))
File "/usr/lib/python2.7/asyncore.py", line 342, in bind
return self.socket.bind(addr)
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use有没有人知道如何解决这个问题?
发布于 2018-01-09 18:41:23
使用SO_REUSEADDR
SO_REUSEPORT将允许这样做(对多个进程重用addr:port ),但需要注意的是,客户端连接可能会导致EADDRINUSE,因为它无法区分旧的和新的套接字信息。
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)https://stackoverflow.com/questions/33249011
复制相似问题