试图将收到的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 [][] [][] [] [][] [] ..... 一直到缓冲区长度。我猜末尾的所有垃圾/空值都应该被忽略,所以我一定做错了些什么。我知道问题出在缓冲区长度,因为如果我将其更改为3(对于这个例子),我的输出就很好。感谢。