我想试一下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(()=>{
代码。。。。
})
执行一次就开一个线程,执行一次就开一个线程。
[解决办法]