尝试将收到的DatagramPacket转换为字符串,但我遇到了一个小问题。不知道什么是最好的方式去做。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 [] [] [] [] [] [] [] .....一路缓冲区的长度。 我猜所有垃圾/ null在最后应该被忽略,所以我必须做错了什么。“我知道buffer.length是问题,因为如果我改变它为3(对于这个例子),我走出来了就好了。
感谢。
不幸的是,没有工作。外面变得完全荒谬。而且eclipse还警告不推荐使用方法String(byte [],int)。当我初始化缓冲区的时候,它的确切长度是可以接收的,但一切都很好,但仍然存在相同的问题。字符串的长度不会事先知道。 – user1105216 2011-12-19 05:27:47
这确实工作,但新的字符串(缓冲区,0,packet.getLength()); 非常感谢。 – user1105216 2011-12-19 05:45:44