Oppure

Loading
30/03/09 20:22
matteo88roma
Ciao a tutti, avrei bisogno di aiuto su una cosa che penso sia semplice, ma alla quale non sono riuscito a trovare soluzione! :pat:

Ho scritto sia un Server UDP che un Client UDP,ho la necessità di inviare un oggetto String dal Client Al Server...

Converto l'oggetto String in un array di bytes,e invio il DatagramPacket al Server, che lo riceve correttamente,però con un errore!

Se invio la stringa "ciao", sul server arriva come "ciao@@@@@@@@@@@@@@@@@....",dove @@@ sono tanti spazi vuoti.

Di certo dipende dal codice qua sotto, ovvero dalla dimensione del buffer per leggere il pacchetto in ingresso (questa è la funzione del server che ritorna un array di bytes con i dati)...


 
    
    public byte[] receivePacketFromClient() throws IOException
    {
        byte[] buffer = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
        server_socket.receive(packet);
        return packet.getData();
    }


Ora la domanda!
Mi potreste dare un consiglio su come elaborare i dati in ingresso, magari attraverso una funzione simile?
Grazie!

PseudoCodice
public byte[] CleanData (byte[] rawdata)
{
  //Codice per pulire l'array, ovvero eliminare i byte
 //che nella conversione a String vengono contati come spazi

etc.
}
aaa
01/04/09 4:32
pierotofy
Io proverei:

 
    public String receivePacketFromClient() throws IOException
    {
        byte[] buffer = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buffer,buffer.length);
        server_socket.receive(packet);

        return new String(packet.getData());
    }

//...

//Dal chiamante:
System.out.println(receivePacketFromClient());


Il mio blog: piero.dev