嘗試將收到的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