Autore Topic: Client UDP  (Letto 855 volte)

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Client UDP
« il: 08 Marzo 2012, 16:09:33 CET »
0
Ciao a tutti, ho un piccolo problemino
non sono sicuro che sia il nemmeno il posto giusto per postare qui il topic pertanto chiedo scusa preventivamente

Il problema è questo: ho realizzato un piccolo client UDP per Android che si connette a un server UDP(scritto in JAVA) e invia un semplice messaggio preso da una textbox.

Funziona (spedisce e riceve) tuttavia ho notato una cosa:

Quando mi faccio stampare a video la risposta del Server (NB è solamente un echo del messaggio inviato dal client di ci ne fa un uppercase) il messaggio ricevuto è:

messaggio inviato tutto maiscolo

ma la lunghezza del messaggio è di 1024...

come mai??

Questo è il codice del client su Android che legge i dati inviati dal server
Codice (Java): [Seleziona]
receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
modifiedSentence = new String(receivePacket.getData());
System.out.println("---->"+modifiedSentence.length());
System.out.println("---->"+modifiedSentence);

Qui il codice del server
Codice (Java): [Seleziona]
//modifica della stringa
String capitalizedSentence = sentence.toUpperCase()+System.getProperty("line.separator");
//trasformazione in un array di Byte
sendData = capitalizedSentence.getBytes();
//creazione di un Datagramma con messaggio, IP e porta del destinatario
DatagramPacket sendPacket =new DatagramPacket(sendData, sendData.length, IPAddress, port);
//invio del pacchetto
serverSocket.send(sendPacket);

La cosa che mi sorprende è che questi due pezzi di codici sono usati in un esempio scritto solamente per JAVA e funziona tutto perfettamente e la stringa ricevuta dal client (ossia una volta modificata dal server) non fa cose strane: per cose strane intendo dire che Android mi stampa fuori

messaggio ricevuto dal server+una sequenza di caratteri tutti uguali a '?' ripetuti centinaia di volte...

come posso risolvere?

Ciao a tutti
Non esistono problemi, ma solo soluzioni...

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Re:Client UDP
« Risposta #1 il: 09 Marzo 2012, 09:26:23 CET »
0
Scioccamente non effettuavo una substring del datagramma ricevuto...

Non mi spiego come mai il client analogo scritto in JAVA non mi mostrasse tutti questi caratteri non assegnati, ma magari è solamente la diversa gestione tra la JVM di Windows e quella di Android (non so se ho detto qualche cavolata)

Ciao a tutti
Non esistono problemi, ma solo soluzioni...