C#怎么判斷一個Socket是否連接


  判斷Socket是否連接上,需要通過發包來確認:

 1         // 檢查一個Socket是否可連接
 2         private bool IsSocketConnected(Socket client)
 3         {
 4             bool blockingState = client.Blocking;
 5             try
 6             {
 7                 byte[] tmp = new byte[1];
 8                 client.Blocking = false;
 9                 client.Send(tmp, 0, 0);
10                 return false;
11             }
12             catch (SocketException e)
13             {
14                 // 產生 10035 == WSAEWOULDBLOCK 錯誤,說明被阻止了,但是還是連接的
15                 if (e.NativeErrorCode.Equals(10035))
16                     return false;
17                 else
18                     return true;
19             }
20             finally
21             {
22                 client.Blocking = blockingState;    // 恢復狀態
23             }
24         }

  這個函數是MSDN上提供的,經過測試,效率不錯,反應很快,結合前面的多線程來檢測多個Socket,以完成在線Socket界面實時更新非常不錯。

  轉載請注明原址:http://www.cnblogs.com/lekko/archive/2012/08/02/2619197.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM