DatagramSocket.receive()不止一次被调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DatagramSocket.receive()不止一次被调用相关的知识,希望对你有一定的参考价值。

我试图通过UDP协议接收数据包。

try {
    datagramSocket = new DatagramSocket(SOCKET_PORT);
    datagramSocket.setBroadcast(true);
    while (true) {
       byte[] receiveData = new byte[1024];
       DatagramPacket packet = new DatagramPacket(receiveData, 
       receiveData.length);
       datagramSocket.receive(packet);
       //...
    }
} catch (Exception ex) {
    ex.printStackTrace(); 
}

当我从客户端发送数据包时,receive()方法会返回,但是在下一个循环中,它不会被阻塞,等待下一个数据包。它无限地返回相同的数据包,但客户端不再发送数据包。

答案

问题出在特定的模拟器网络bug上。在真实设备上一切正常

以上是关于DatagramSocket.receive()不止一次被调用的主要内容,如果未能解决你的问题,请参考以下文章

时光不老我们不散啥意思 怎么理解时光不老我们不散的意思

时光不老我们不散这句话是啥意思 时光不老我们不散这句话解释

C语言 不允许使用不完整的类型

时光不老,我们不散的下一句是啥?

C语言 不允许使用不完整的类型

时光不老,我们不散珍惜友情的说说