码迷,mamicode.com
首页 > 其他好文 > 详细

TCP端口复用引发的异常,用setsockopt来解决

时间:2019-07-02 21:07:01      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:允许   服务   err   pre   端口   socket   端口复用   并发   use   

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)

这样就不会报错了

TCP端口复用引发的异常,用setsockopt来解决

标签:允许   服务   err   pre   端口   socket   端口复用   并发   use   

原文地址:https://www.cnblogs.com/pythonywy/p/11123004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!