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は問題を解決できないようですありがとうございます!