TCP端口复用引发的异常,用setsockopt来解决
我们在并发连接一个服务端时候他会出现这种情况
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
假如端口被socket使用过
,并且利用socket.close()来关闭连接,但此时端口还没有释放
,要经过一个TIME_WAIT的过程之后才能使用,这是TNN的相当烦银的,为了实现端口的马上复用
,可以选择setsockopt()函数来达到.
端口复用的实现,我在这里用Python举个TCP端口复用的例子,UDP套接字要做的完全一样。
我们可以在定义好的端口加这句
from socket import
server = socket()
server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
server.bind(('127.0.0.1', 8000))
server.listen(5)
这样就不会报错了