.NET アプリケーションでのソケット接続タイムアウトの管理
ネットワーク接続の問題により、ソケット接続の確立時に大幅な遅延が発生する可能性があります。 無期限の待機を防ぐために、.NET には接続タイムアウトを設定するメカニズムが用意されています。 これにより、ネットワークの問題が発生した場合でも、アプリケーションは効率的に応答できるようになります。
.NET の Socket
クラスは、接続タイムアウトを管理するメソッドを提供します。 デフォルト設定では無期限の待機が可能ですが、アプリケーションの堅牢な動作にはタイムアウトの実装が不可欠です。
次のコード スニペットは、BeginConnect
と EndConnect
を使用して 5 秒の接続タイムアウトを設定する方法を示しています。
<code class="language-csharp">IAsyncResult result = socket.BeginConnect(sIP, iPort, null, null); bool success = result.AsyncWaitHandle.WaitOne(5000, true); if (socket.Connected) { socket.EndConnect(result); } else { socket.Close(); throw new ApplicationException("Connection to server failed."); }</code>
このコードは、指定された 5 秒以内に接続を確立しようとします。 その時間内に接続が成功しない場合は、SocketException
がスローされ、アプリケーション内で適切なエラー処理が可能になります。
この例では .NET Framework v2 を使用していることに留意することが重要です。 特定の構文は、他の .NET バージョンでは若干異なる場合があります。 .NET 環境に関連する詳細情報については、Microsoft の公式ドキュメントを参照してください。
以上が.NETでソケット接続タイムアウトを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。