[C#] TcpClient 使非同步連接,避免對方未回應等待

使用TcpClient 連線時
若是用同步連接, 而對方沒回時要等約23秒才會產生例外
我們可以使用非同步的方式連接, 在我們指定的秒數未回
就直接斷線
TcpClient MyTcpClient = new TcpClient();
IAsyncResult MyResult = MyTcpClient.BeginConnect(YourTargetIP, YourTargetPort, null, null);
 MyResult.AsyncWaitHandle.WaitOne(3000, true);//只等三秒
if (!MyResult.IsCompleted)
{
    MyTcpClient.Close();
    //作如果沒連上線的事
}
else if (MyTcpClient.Connected == true)
{
    //作連上線的事
    MyTcpClient.Close();
}

留言