我在C#,服務器和客戶端程序中使用c/s模式在不同計算機上編寫通信程序。今天客戶端progarm連接到服務器progarm後,然後我從網絡適配器(此後,客戶端和服務器程序沒有做任何事情)拉出電纜,發生了陌生的事情。我發現服務器程序的socket仍然保持連接狀態。我用命令 「netstat的-a -n」 來獲取網絡信息,並獲取信息,如下列:如何在網絡電纜從網絡適配器斷開連接時獲取套接字的狀態
TCP 192.168.1.2:3645 192.168.1.3:1863 ESTABLISHED
192.168.1.2(服務器IP址) 192.168.1.3(客戶端IP地址)
有人知道原因嗎?如何解決這個問題呢 。 我想如何服務器程序可以接收事件,並關閉客戶端計算機的網線已拔出插座。
請給我一些建議或解決方案。
感謝
記住,socket.Connected(或IsConnected,我忘了)只會告訴你最後一個命令後的套接字狀態。所以如果你最後的命令成功了,它將返回true。如果你拔出電纜,它將繼續是真實的,直到你嘗試使用它,並有什麼失敗。 – NibblyPig 2011-01-11 16:01:45