減少套接字連線逾時延遲
連接到離線或無回應的遠端伺服器可能會導致長時間逾時,從而影響應用程式效能。 本文探討了最小化這些延遲並改善連線嘗試的技術。
高效率的策略涉及使用非同步BeginConnect
方法。此方法在不阻塞主執行緒的情況下啟動連接,並傳回一個 IAsyncResult
物件。 該物件中的 WaitOne
函數可讓您指定連線嘗試的逾時(以毫秒為單位)。
這是一個例子:
<code class="language-csharp">Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Set a 5-second timeout IAsyncResult result = socket.BeginConnect(sIP, iPort, null, null); bool success = result.AsyncWaitHandle.WaitOne(5000, true); if (socket.Connected) { socket.EndConnect(result); } else { // Handle connection failure socket.Close(); throw new ApplicationException("Connection to server failed."); }</code>
此程式碼設定 5 秒逾時。 如果在此時間內未建立連接,WaitOne
將傳回 false
,表示連線失敗。此方法提供對超時行為的精細控制,根據應用程式的需求優化連接嘗試。
以上是如何優化套接字連線逾時以加快連線嘗試速度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!