c# 使用UdpClient並指定了本地埠,用完之後需要關閉
阿新 • • 發佈:2018-10-31
public class UDPSend { System.Net.Sockets.UdpClient UDP_C; //用於請求的UDP實列 //建構函式 public UDPSend(string host, int point) { CfgLoader xs = new CfgLoader(); try { UDP_C = new System.Net.Sockets.UdpClient(Convert.ToInt32(xs.GetPort())); } catch (Exception e) { string b = ""; } UDP_C.Connect(host, point); } //傳送請求資訊 public void sendMsg(string s) { byte[] msg = System.Text.Encoding.UTF8.GetBytes(s); UDP_C.Send(msg, msg.Length); UDP_C.Close(); } public void sendMsg(byte[] s) { UDP_C.Send(s, s.Length); UDP_C.Close(); } }
最開始的時候,我在例項化UDP_C的時候沒有指定本機發送資料的埠(非對方接收資料的埠),不會出錯, 但後來指定了埠之後(UDP_C = new System.Net.Sockets.UdpClient(Convert.ToInt32(xs.GetPort()));)
第二次呼叫就要出錯:通常每個套接字地址(協議/網路地址/埠)只允許使用一次
但是要命的這個VS,跟蹤到這一句,並不報錯,而是直接中斷了我的除錯模式,好吧,我寫上try catch,他竟然進不去try catch,而且連斷點都無法打到catch的程式碼塊裡面去。
無奈之下,執行到(UDP_C = new System.Net.Sockets.UdpClient(Convert.ToInt32(xs.GetPort()));)時,選中new後面的,然後右擊,按Q(什麼功能,自己去除錯的時候看),就看到錯誤資訊了。。。。
vs2008有時候還真有怪異的事情