首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小弟我想试一下udp发信息 然后用到Receive方法 每次一运行到哪里都会未响应

2013-07-27 
我想试一下udp发信息然后用到Receive方法每次一运行到哪里都会未响应public static String xinxis(){strin

我想试一下udp发信息 然后用到Receive方法 每次一运行到哪里都会未响应
        public static String xinxis()
        {
            string sx = null;
            UdpClient udpp = new UdpClient(bdukou);
            udpp.Connect(aip, bdukou);
            try
            {
                IPEndPoint ips = new IPEndPoint(IPAddress.Any, 0);
                // Byte[] shoux=new Byte[100000];

                Byte[] shoux = udpp.Receive(ref ips);//出问题的语句 每次到这里程序就会未响应            
                sx = Encoding.Default.GetString(shoux);

                udpp.Close();
               
            }
            catch (SocketException e)
            {
                MessageBox.Show(e.Message, "提示");
                
            }
            return sx; //int shouxx = udpp.Available;
        } socket udp连接 Receive方法
------解决方案--------------------


udpp.Receive 是个同步的接收数据包的方法, 这个方法会一直等到成功接收一个UDP包之后,才会继续往下执行。 
或是等到一定的时候,被系统中止抛出异常。
[解决办法]
Receive方法属于阻塞方法  只有接受到数据后 才会返回  不然程序停在那里不往下运行
[解决办法]
因为没有人给你发数据啊,所以你肯定收不到啊。
要多线程很简单啊,
Task.Factory.StartNew(()=>{
代码。。。。
})
执行一次就开一个线程,执行一次就开一个线程。
[解决办法]

引用:
            Thread T = new Thread(fd);
            T.Start();


我一直以为是这样的


这个也可以开新线程

热点排行