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()不止一次被调用的主要内容,如果未能解决你的问题,请参考以下文章