我一直在尋找很多例子,例如this,this和this,但它們都不起作用。我不確定有什麼問題,但是對於我嘗試過的每個示例而言,等待只是被忽略,並且我只在大約1秒內得到標準的未處理的套接字異常,而不管指定的等待時間。 No connection could be made because the target machine actively refused it.
如何使用TcpClient設置異步連接的超時時間?
下面是摘錄,以幫助理解:
public void Connect(string host, int port)
{
tcpClient.BeginConnect(host, port, OnConnect, null);
}
private void OnConnect(IAsyncResult async)
{
tcpClient.EndConnect(async);
}
一直在嘗試了一堆不同的例子,但我的客戶端應用程序要麼只是failsfast後個個第二或拋出一個插座例外。 try-catch是否會成爲更好的解決方案,並避免使用WaitHandles?
所有這些例子都應該有效。通過您的代碼使用第一個結束步驟。在調用EndConnect之前,無法獲得套接字錯誤。 – jgauffin