Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python asyncore套接字,端口无法重用_Python_Sockets - Fatal编程技术网

Python asyncore套接字,端口无法重用

Python asyncore套接字,端口无法重用,python,sockets,Python,Sockets,这是我的服务器代码,我已经编写了self.set\u reuse\u addr(): 仍然存在此错误,端口重用 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 getat

这是我的服务器代码,我已经编写了
self.set\u reuse\u addr()

仍然存在此错误,端口重用

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

有人知道如何解决这个问题吗?

使用所以\u REUSEADDR

  • 允许绑定到0.0.0.0:端口和192.168.11.2:端口
  • 允许在TIME\u WAIT中绑定到套接字,但您无法建立到上一个TIME\u WAIT套接字所在的相同目标地址:端口的连接
  • 因此_REUSEPORT将允许这样做(对多个进程重用addr:port),但需要注意的是,客户端连接可能会导致EADDRINUSE,因为它无法区分旧套接字信息和新套接字信息

    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
    

    使用SO\u REUSEADDR

  • 允许绑定到0.0.0.0:端口和192.168.11.2:端口
  • 允许在TIME\u WAIT中绑定到套接字,但您无法建立到上一个TIME\u WAIT套接字所在的相同目标地址:端口的连接
  • 因此_REUSEPORT将允许这样做(对多个进程重用addr:port),但需要注意的是,客户端连接可能会导致EADDRINUSE,因为它无法区分旧套接字信息和新套接字信息

    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)