在udp通訊過程中,如果客戶端中途斷開,伺服器會收到乙個socketexception,錯誤id為10054,描述是「遠端主機強迫關閉了乙個現有的連線」,緊接著的事就可怕了,udp服務終止監聽,所有客戶端都受到了影響。也就是說乙個客戶端引起的異常導致了整個系統的崩潰。
找了好幾天了。終於找到了解決辦法。
在初始化物件後設定屬性如下:
uint ioc_in = 0x80000000;
uint ioc_vendor = 0x18000000;
uint sio_udp_connreset = ioc_in | ioc_vendor | 12;
clientsocket.iocontrol((int)sio_udp_connreset, new byte , null);
socket.iocontrol 方法 (iocontrolcode, byte, byte)
使用iocontrolcode列舉指定控制**,為 socket
設定低階操作模式。
引數iocontrolcode
乙個 iocontrolcode
值,它指定要執行的操作的控制**。
optioninvalue
byte
型別的陣列,包含操作要求的輸入資料。
optionoutvalue
byte型別的陣列,包含由操作返回的輸出資料。
返回值optionoutvalue
引數中的位元組數。
異常異常型別
條件socketexception
試圖訪問套接字時發生錯誤。有關更多資訊,請參見備註部分。
objectdisposedexception
socket已關閉。
invalidoperationexception
試圖不使用 blocking
屬性更改阻止模式。
備註此方法提供對socket類的當前例項所基於的作業系統socket的低階訪問。有關更多資訊,請參見 msdn library 中的 wsaioctl 文件。
redis 遠端主機強迫關閉了乙個現有的連線
springboot專案通過redis時校驗token時,出現該異常 校驗token時,建立連線訪問redis,當連線達到最大連線數,導致後面的連線都連線失敗 檢視redis最大連線數 config get maxclients 檢視當前連線數 info clients 1 手動關閉客戶端連線 cl...
遠端主機強迫關閉了乙個現有的連線。請高手解答?
遠端主機強迫關閉了乙個現有的連線。說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.net.sockets.socketexception 遠端主機強迫關閉了乙個現有的連線。源錯誤 行 144 行 1...
乙個主機同乙個UDP埠,可以開啟幾次
在我的潛意識裡,我一直認為乙個埠只可以開啟1次,如果這個主機有多個網絡卡的話,每個網絡卡都可以在這個埠收發資料,最近一段時間除錯同一主機內不同網絡卡之間 資料的功能,才發現,socket針對同乙個埠不僅可以多次繫結,其中可以根據不同的本地ip多次繫結同一埠,也可以根據繫結不同網絡卡多次繫結同一埠,看...