我对TCP / IP网络上的客户端套接字有疑问。假设我用
try:
comSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(1)
try:
comSocket.bind(('', 5555))
comSocket.connect()
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(2)
创建的套接字将绑定到端口5555。问题是结束连接后
comSocket.shutdown(1)
comSocket.close()
使用wireshark,我看到套接字从两侧都被FIN,ACK和ACK关闭,我无法再次使用该端口。我收到以下错误:
[ERROR] Address already in use
我想知道如何立即清除端口,以便下次仍可以使用该端口。
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
setsockopt似乎无法解决问题,谢谢!