尝试将接收到的 DatagramPacket 转换为字符串,但我遇到了一个小问题。不确定最好的方法是什么。
我将要接收的数据大部分长度未知,因此我在接收端设置了一些缓冲区[1024]。问题是,假设我发送了字符串“abc”并在我的接收端执行了以下操作...
buffer = new byte[1024];
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
buffer = packet.getData();
System.out.println("Received: "+new String(buffer));
我得到以下输出:abc[][][][]][][][].....一直到缓冲区长度。 我猜最后所有的垃圾/空值都应该被忽略,所以我一定做错了什么。”我知道 buffer.length 是问题所在,因为如果我将它更改为 3(对于这个例子),我的出来就好了。
谢谢。
最佳答案
new String(buffer, 0, packet.getLength())
关于java - DatagramPacket 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8557132/