C#怎麼判斷一個Socket是否串連

來源:互聯網
上載者:User

  判斷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                 else18                     return true;19             }20             finally21             {22                 client.Blocking = blockingState;    // 恢複狀態23             }24         }

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.