2
Mac OS XのTIME_WAITはどこにありますか?
TIME_WAITMac OS Xではなし 通常、TCP接続が閉じられると、close()最初に呼び出された側のソケットはそのTIME_WAIT状態のままになります。 ピアの1つがMac OS X(Lion)マシンである場合、最初にMac側で呼び出されると、MacにTIME_WAITは何も表示さnetstat -anれませんclose()。ただし、実際にソケットはTIME_WAIT状態にあるようです。これは、listen()(ソケットオプションを使用せずに)再度呼び出しSO_REUSEADDRを行うlisten()と失敗するためです。 2 * MSL(によって報告されるMac OS X Lionでの最大セグメント寿命は15秒)を待つと状態がsysctl net.inet.tcp.mslクリアされTIME_WAIT、listen()エラーなしで再度呼び出すことができます。 なぜソケットが見えないのTIME_WAITですか? テスト中 Pythonの2つの簡単なテストプログラムを次に示します。 サーバ #!/usr/bin/env python import socket HOST = '' PORT = 50007 l = socket.socket(socket.AF_INET, socket.SOCK_STREAM) l.bind((HOST, PORT)) l.listen(1) print("Listening on %d" % PORT) (s, _) = l.accept() print("Connected") raw_input("Press <enter> to close...") …