Originariamente inviato da Salinas
Ok, grazie.
Cmq nel frattempo ho risolto da solo il mio problema.
Adesso ne ho un altro.
Il server ed il client comunicano bene, solo vorrei far stampare nell'area di testo quello che si mandano.
ho provato con questo codice ma mi da valore null:
codice:
while (!in.ready()) {}
System.out.println(in.readLine()); // Read one line and output it
jTextArea1.append("Stringa ricevuta:" + in.readLine() + "/n");
E' ovvio che ti dia null:
codice:
while (!in.ready()) {}
// Qui leggi l'informazione dalla Socket e la stampi a video
// ma l'informazione, dopo la lettura, viene consumata, persa, buttata via
System.out.println(in.readLine()); // Read one line and output it
// Qui stai leggendo una seconda stringa... che probabilmente non esiste
// perchè il server ne invia una sola (letta prima e buttata via)
jTextArea1.append("Stringa ricevuta:" + in.readLine() + "/n");
in.readLine() legge una riga di testo da uno stream. Quando un'informazione viene letta da uno stream, lo stream "la cancella" (ovvero, si posiziona in modo da leggere il resto dello stream, che può anche essere vuoto), perchè deve far posto per il resto. Quindi, se vuoi stampare in due posti diversi la stringa che hai letto, la devi memorizzare da qualche parte:
codice:
while (!in.ready()) {}
String rigaLetta = in.readLine();
System.out.println( rigaLetta );
jTextArea1.append("Stringa ricevuta:" + rigaLetta + "/n");
Ciao.