socket.connect()呼び出しのタイムアウトを設定するにはどうすればよいですか? [複製]
質問
この質問にはすでに回答があります:
- ソケット接続タイムアウトの設定方法 11の答え
ダウンしている可能性のあるホストに接続するアプリがあります。ホストがダウンしている場合、タイムアウトするのにかかる30秒ほど待ちたくありません。現在、ブロッキングソケットを使用しています。
socket.poll()とsocket.select()を見てきましたが、ソケットに時間を設定したいだけです。それがシステムのどこかでしなければならない設定であるかどうかは気にしません。また、ポーリングと選択は接続指向の通信では機能しないことを理解しているようです-これは正しいですか?
これが絶対に不可能な場合、poll、select、またはその他の手法を使用して、必要な結果を得るための良い方法は何ですか?
解決
IAsyncResult asr = socket.BeginConnect( ip, port, null, null );
bool res = asr.AsyncWaitHandle.WaitOne( 10000, true ); // 10 sec timeout
更新:より良い例がありますこちら。
所属していません StackOverflow