2009-04-28 5 views
2

私はいくつかのポートを再利用できるようにしたい、と私は次のコードで、私のソケットにのsetsockoptを使用している理由です:windowsのsetsockoptは壊れていますか?

sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 

しかし、これは実際に動作しません。私はどちらかバインドエラーを取得していないが、サーバーソケットが応答していない(それは開始するようだが、私はそれに接続しようとすると、選択ループを入力しません)。この現象は、スクリプトが予期せず終了した場合に表示され、サーバーがリッスンしているポートを変更した場合、すべて正常に動作します。あなたはいくつかのアドバイスを提供できますか?

EDIT:ソケットの名前をsockに変更しました。私はこのコードスニペットのために選んだ名前だけでした。

+0

ソケットでsetsockoptを呼び出す必要があります。あなたがシャドウイングしていないと確信していますか? – SilentGhost

+0

これはちょうど私がこのスニペットのために選んだ名前です。 – Geo

+0

この質問は、おそらく "WindowsのSO_REUSEADDRが壊れていますか?"という名前に変更する必要があります。 – paleozogt

答えて

1

setsockoptは、ソケットオブジェクトのメソッドです。モジュールsocketにはsetsockoptという属性はありません。

+0

私はこのソケットソケットの中で私のソケットオブジェクトの名前を付けました。私のコードでは、その名前は "listening_sock"です – Geo

関連する問題