DatagramPacket para string

Tentando converter um DatagramPacket recebido em string, mas tenho um pequeno problema. Não sei ao certo qual é a melhor maneira de fazer isso.

Os dados que eu vou receber são geralmente de tamanho desconhecido, por isso tenho um buffer [1024] definido no meu lado receptor. O problema é, suponha que eu enviei a string "abc" e faça o seguinte no lado do meu receptor ...

buffer = new byte[1024]; 
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
buffer = packet.getData();
System.out.println("Received: "+new String(buffer));

Recebo a seguinte saída: abc [] [] [] []] [] [] [] ...] até o tamanho do buffer. Eu estou supondo que todo o lixo eletrônico / nulo no final deveria ter sido ignorado, então devo estar fazendo algo errado. "Eu sei que o buffer.length é o problema, porque se eu mudar para 3 (neste exemplo), meu sai sai muito bem.

Obrigado

questionAnswers(6)

yourAnswerToTheQuestion