我有一个关于TCP/IP网络上的客户端套接字的问题。比方说,我用Python:绑定套接字:“地址已在使用”
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的似乎并不能够解决问题 谢谢!
为什么客户端需要特定的端口? – 2011-06-17 00:17:29
因为我必须将其放入生产服务器,并在该服务器中,所有传出连接都被阻止。我需要为套接字指定一个特定的端口,以便他们可以在防火墙上设置一条规则,允许连接通过。 – 2011-06-17 00:46:31
我建议你复制并粘贴实际的代码。你上面写的有一个明显的错误,会阻止你看到你声称已经看到的行为。这让读者不知道你有什么疏忽告诉我们可能会导致你的问题。 – 2011-06-17 01:01:06