c# 使用UdpClient并指定了本地端口,用完之后需要关闭

来源:互联网 发布:武汉市程序员工资待遇 编辑:程序博客网 时间:2024/04/30 11:56
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有时候还真有怪异的事情

原创粉丝点击