java UDP接收器代码仅接收一个数据包
以下代码仅在数据包上接收。我发送了不同大小的数据,以查看接收器是否接收到数据。我只收到第一个包,没有看到其他包。丢失数据包的原因可能是什么。因为我每次都会收到12个字节。我需要清除缓冲区还是将其增大。我应该遵循哪些实践
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public class Reciever {
public static void main(String[] args) {
try {
DatagramSocket s = new DatagramSocket(2010);
byte[] data = new byte[12];
DatagramPacket p = new DatagramPacket(data, 12);
s.receive(p);
System.out.println("got packet");
ByteBuffer bb = ByteBuffer.allocate(12).order(ByteOrder.LITTLE_ENDIAN);
bb.put(data);
bb.rewind();
System.out.println(bb.getFloat());
System.out.println(bb.getFloat());
System.out.println(bb.getFloat());
} catch (IOException e) {
e.printStackTrace();
}
}
}
# 1 楼答案
我通过添加一个while循环并移动 DatagramSocket s=新的DatagramSocket(2010年); 字节[]数据=新字节[12];圈外