python立即释放端口
背景
在使用python进行socket编程时,如果某一个端口被绑定并进行TCP连接后,调用socket.close()
方法并不会立即释放该端口。
根据TCP终止连接的规则,还需要经过一个TIME_WAIT的等待时间才会彻底释放端口。
为了在连接断开后立即实现端口的复用,可以实现setsockopt()函数来实现。
下面看代码
import socket
tcp1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 在绑定前调用setsockopt让套接字允许地址重用
tcp1.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp1.bind(('0.0.0.0', 12345))