Originariamente inviato da hackerdm
ma come faccio a gestirmi lo "\n"?? e cmq se invio il numero di righe, dovrei utilizzare un for a destinazione... mi sembra troppo macchinoso come soluzione... sia nella documentazione che un po ovunque viene utilizzato sempre il while per leggere i messaggi... purtroppo sono obbligato ad utilizzare "\n" per l'invio dei messaggi perchè sennò i messaggi non partono dal server... penso sia una convenzione.
Ti sembra macchinoso perchè stai usando l'oggetto "sbagliato" per ciò che chiedi di fare.
BufferedReader è un oggetto che serve a leggere righe di testo da una sorgente in modo bufferizzato. Esso ritorna "null" quando raggiunge la fine della sorgente (quindi, quando incontra l'EOF della sorgente).

Una socket è una sorgente particolare: non ha una fine (se non quando viene chiusa). Quindi per usare in modo corretto BufferedReader con una Socket, colui che riceve i dati deve sapere quanti dati riceverà, o, per lo meno, deve avere un modo per capire quando i dati sono finiti. Questo, in gergo, si chiama protocollo di comunicazione.

Il protocollo lo scegli tu, ma deve essere solido (essere coerente e non permettere ambiguità): o informi il ricevente del numero di righe che invierai, o il ricevente è a conoscenza di una particolare riga che ne indica la fine.


Ciao.