Ich habe eine Frage zum Client-Socket im TCP / IP-Netzwerk. Nehmen wir an, ich benutze
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)
Der erstellte Socket wird an Port 5555 gebunden. Das Problem besteht darin, dass nach dem Beenden der Verbindung
comSocket.shutdown(1)
comSocket.close()
Bei Verwendung von Wireshark sehe ich, dass die Buchse von beiden Seiten mit FIN, ACK und ACK geschlossen ist. Ich kann den Port nicht mehr verwenden. Ich erhalte folgende Fehlermeldung:
[ERROR] Address already in use
Ich frage mich, wie ich den Port sofort löschen kann, damit ich beim nächsten Mal immer noch denselben Port verwenden kann.
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
setsockopt scheint das Problem nicht lösen zu können. Danke!