Problemas ao lidar com Arrays de Bytes em UDP, comparação entre eles

Galera, estou fazendo um simples programa de conexão entre um cliente um servidor para testes.

O Cliente envia ou a String com valor “a”, “ab” ou “abc”, digitado no teclado.
O Servidor analisa o conteúdo da String e exibe uma resposta no console referente a qual a String.

Porém, como utilizo UDP, devo disponibilizar um array de bytes para receber o conteúdo do datagrama. Porém, o servidor só reconhece certinho o valor do String quando o
numero de bytes que eu envio é EXATAMENTE igual ao numero de bytes disponibilizado. Dessa forma, como disponibilizei um array de 3 bytes, ele só acaba reconhecendo quando envio a String “abc”, que também tem 3 bytes.
Alguém sabe como contorno isso para o servidor reconhecer as 3 opções de Strings com sucesso?
Obrigado a quem puder ajudar! :slight_smile:

Cliente:

[code]public class ClienteOpcoes {

public static void main(String args[]) throws SocketException, IOException{
    Scanner s=new Scanner(System.in);
    String opcao;
    System.out.println("Digite a opcao 'a', 'ab' ou 'abc':");
    opcao=s.nextLine();
    DatagramSocket ds = new DatagramSocket(2001);
    byte [] dados = opcao.getBytes();
    DatagramPacket dp = new DatagramPacket(dados, dados.length, InetAddress.getByName("localhost"),2000);
    ds.send(dp);
    System.out.println("Enviado! Confira a resposta do servidor");
    ds.close();
}

}[/code]

Servidor:

[code]public class ServidorOpcoes {
public static void main (String args[]) throws SocketException, IOException{
while (true){
DatagramSocket ds = new DatagramSocket(2000);
byte dados[] = new byte[3]; //o vetor que armazena os dados do datagama
DatagramPacket dp = new DatagramPacket(dados, dados.length);
System.out.println("‘Servidor Opcoes’ aguardando dados");
ds.receive(dp);

        System.out.println("Conteudo recebido: "+new String(dp.getData()));
        if (new String(dp.getData()).equals("a")){
            System.out.println("o dado recebido eh 'a', DEU CERTO");
        }else if((new String(dp.getData())).equals("ab")){
            System.out.println("o dado recebido eh 'ab', DEU CERTO");
        }else if((new String(dp.getData())).equals("abc")){
            System.out.println("o dado recebido eh 'abc', DEU CERTO");
        }else{
            System.out.println("DEU ERRADO, dia de sorte!");
        }

        ds.close();
    }
}

}[/code]