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 [] [] [] []] [] [] [] .. ... вплоть до длины буфера. Я предполагаю, что весь мусор / нуль в конце должен был быть проигнорирован, поэтому я, должно быть, делаю что-то не так ». Я знаю, что проблема с buffer.length, потому что если я изменю его на 3 (в этом примере), мой выходит нормально.

Спасибо.

5
задан user1105216 19 December 2011 в 04:35
поделиться