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

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有时候还真有怪异的事情

猜你喜欢

转载自blog.csdn.net/juyangjia/article/details/9041429
今日推荐