套接字故障检测

时间:2011-03-31 15:49:51

标签: c# sockets

我很想知道当客户端计算机网络电缆拔出或硬重置时,如何检测(在服务器端)套接字连接失败。这对于c#中的客户端服务器项目非常有用。

目前,我只能在客户端关闭应用程序并隐式插入套接字时检测套接字异常。

谷歌搜索了一下我发现IEvent FD_CLOSE WSAAsyncSelect。这是否适用于我上面描述过的案例?

1 个答案:

答案 0 :(得分:0)

看一下这个答案:Instantly detect client disconnection from server socket

<强>更新

好的,我想出你在说什么。如果客户端电缆已拔下或网络出现问题,您无法在服务器上找到答案。您将无法再获得该客户的任何回复。我能看到的唯一方法是在本回答开头的链接中提供。

Ws2_32.dll(Winsock2)中有WSAEventSelect本机方法,但它仅用于检测本地计算机(应用程序运行的位置)上的网络不可用原因。

我查看了System.Net.NetworkInformation.NetworkChange类源代码,在那里您可以看到与WSAEventSelect相关的所有内容都与本地计算机有关(在您的案例服务器中)。