我在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