最近在開發乙個udp服務端程式,本來一切開發順序,暫時的測試也沒有任何問題。
在某一次測試中,伺服器端在傳送資料時捕獲到了乙個異常,這個異常導致原因應該是遠端客戶端的udp監聽已停止導致資料傳送出錯。
按理說udp是無連線的,報這個異常是不合理的。好吧,即使報了異常,也應該就報個異常罷了,沒想到的是這個異常讓整udp的服務監聽也停止了。這樣就因為乙個客戶端的資料傳送無法到達而導致了服務掛了,所有客戶端都無法與伺服器通訊了。
因此在網上各種搜尋後找到了解決辦法,我們只要在初始化udp服務時,應如下設定相關socket,以上情況再發生時將不會捕獲到任何異常了。
[csharp]view plain
copy
?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這個異常。在...