UDP不捕獲異常,避免終端監聽

2022-02-20 13:24:16 字數 763 閱讀 4519

最近在開發乙個udp服務端程式,本來一切開發順序,暫時的測試也沒有任何問題。

在某一次測試中,伺服器端在傳送資料時捕獲到了乙個異常,這個異常導致原因應該是遠端客戶端的udp監聽已停止導致資料傳送出錯。

按理說udp是無連線的,報這個異常是不合理的。好吧,即使報了異常,也應該就報個異常罷了,沒想到的是這個異常讓整udp的服務監聽也停止了。這樣就因為乙個客戶端的資料傳送無法到達而導致了服務掛了,所有客戶端都無法與伺服器通訊了。

因此在網上各種搜尋後找到了解決辦法,我們只要在初始化udp服務時,應如下設定相關socket,以上情況再發生時將不會捕獲到任何異常了。

[csharp]view plain

copy

print

?uint ioc_in = 0x80000000;  

uint ioc_vendor = 0x18000000;  

uint sio_udp_connreset = ioc_in | ioc_vendor | 12;  

ipendpoint flocalipendpoint = new ipendpoint(ipaddress.parse("192.168.1.103"), 6000);  

udpclient mudpserver = new udpclient(flocalipendpoint);  

mudpserver.client.iocontrol((int)sio_udp_connreset, new byte , null);  

外部鏈結

PHP正規表示式 不捕獲

替換好了,現在終於到了解決3位或4位區號問題的時間了。正規表示式裡的替換指的是有幾種規則,如果滿足其中任意一種規則都應該當成匹配,具體方法是用 把不同的規則分隔開。聽不明白?沒關係,看例子 0 d d 0 d d這個表示式能匹配兩種以連字型大小分隔的 號碼 一種是三位區號,8位本地號 如010 12...

mysql異常捕獲 MySql中捕獲異常的方法

下面是程式設計之家 jb51.cc 通過網路收集整理的 片段。mysql中是否能有sqlserver的 error變數呢,或者如c 中的try catch語法呢。答案是肯定的,例項 如下 code drop procedure if exists sp call jobs create proced...

關於異常捕獲

你可以查一下你的sdk,裡面有很多的exception的定義,其基類其實都是system.exception一樣。但system.exception只提供了一些一般異常的處理。更多的需要專業的來處理。比如找不到檔案,你必須捕捉system.io.filenotfoundexception這個異常。在...