摘要:TcpIP連線Server端如何偵測Client已經斷線
以前在做TCPIP連線,都會使用Connected屬性來判別是否已經連線。
但這個屬性,只會紀錄前一次Networkstream的狀態,它是沒有即時更新的,即,Client端若斷線,Server端是無法知道的
所以google了一下,發現了"黑暗執行緒"的這篇文章
http://blog.darkthread.net/post-2011-08-11-detected-tcpclient-connection-status.aspx
重點就是,需要利用下面這一小斷程式碼來讓Server判斷Client是否已經斷線
try { //使用Peek測試連線是否仍存在 if (clnt.Connected && clnt.Client.Poll(0, SelectMode.SelectRead)) closed = clnt.Client.Receive(testByte, SocketFlags.Peek) == 0; } catch (SocketException se) { closed = true; }
============ 以下是簽名檔 ============
一個小小螺絲釘。
第一次建立Blog,希望以後能慢慢充實它。
Howard