[英]Socket failure detection
我想知道如何在客戶端計算機拔出網絡電纜或對其進行硬重置時(在服務器端)檢測到套接字連接失敗。 這對於c#中的客戶端服務器項目很有用。
目前,我僅在客戶端關閉應用程序並隱式關閉套接字時才能夠檢測套接字異常。
谷歌搜索了一下,發現了WSAAsyncSelect
的FD_CLOSE IEvent
。 這對我上面描述的情況有用嗎?
看看這個答案: 立即檢測客戶端與服務器套接字的斷開連接
更新
好的,我知道您在說什么。 如果客戶端電纜已拔出或網絡發生故障,則無法在服務器上查明。 您將再也不會從該客戶端獲得任何響應。 此答案開頭的鏈接中提供了我只能看到的方法。
Ws2_32.dll(Winsock2)內部有WSAEventSelect本機方法,但是它僅用於檢測本地計算機(運行應用程序)上的網絡不可用原因。
我查看了System.Net.NetworkInformation.NetworkChange類源代碼,然后您可以看到與WSAEventSelect相關的所有內容都與本地計算機(在您的情況下為服務器)有關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.