首頁 >後端開發 >C++ >如何在.NET 中有效配置套接字連線逾時?

如何在.NET 中有效配置套接字連線逾時?

Susan Sarandon
Susan Sarandon原創
2025-01-10 10:53:46315瀏覽

How to Efficiently Configure Socket Connect Timeouts in .NET?

最佳化 .NET 中的套接字連線逾時

網路套接字連接需要仔細的逾時管理,以避免應用程式凍結並增強使用者體驗。 長時間的連線嘗試會顯著影響效能。

建議方法:

在 .NET 中設定套接字連接逾時的最有效方法是利用 IAsyncResultAsyncWaitHandle 的非同步操作。這允許精確控制連接嘗試。

範例:

<code class="language-csharp">Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// Establish a 5-second connection timeout
IAsyncResult result = socket.BeginConnect(sIP, iPort, null, null);

// Await connection completion or timeout
bool success = result.AsyncWaitHandle.WaitOne(5000, true);

if (socket.Connected)
{
    socket.EndConnect(result);
    // Proceed with socket operations
}
else
{
    // Handle connection failure: close socket and raise exception
    socket.Close();
    throw new ApplicationException("Connection to server failed.");
}</code>

這種非同步技術比沒有明確逾時設定的同步 Connect() 呼叫提供了卓越的效率和靈活性。 它可以防止在等待連接時阻塞應用程式線程。

以上是如何在.NET 中有效配置套接字連線逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn