我很想知道当客户端计算机网络电缆拔出或硬重置时,如何检测(在服务器端)套接字连接失败。这对于c#中的客户端服务器项目非常有用。
目前,我只能在客户端关闭应用程序并隐式插入套接字时检测套接字异常。
谷歌搜索了一下我发现IEvent
的 FD_CLOSE WSAAsyncSelect
。这是否适用于我上面描述过的案例?
答案 0 :(得分:0)
看一下这个答案:Instantly detect client disconnection from server socket
<强>更新强>
好的,我想出你在说什么。如果客户端电缆已拔下或网络出现问题,您无法在服务器上找到答案。您将无法再获得该客户的任何回复。我能看到的唯一方法是在本回答开头的链接中提供。
Ws2_32.dll(Winsock2)中有WSAEventSelect本机方法,但它仅用于检测本地计算机(应用程序运行的位置)上的网络不可用原因。
我查看了System.Net.NetworkInformation.NetworkChange类源代码,在那里您可以看到与WSAEventSelect相关的所有内容都与本地计算机有关(在您的案例服务器中)。