Il protocollo non lo faccio io è imposto e funziona cosi:
Quando ci si connette il server manda un intestazione e tutti i dati che ha disponibili, un esempio potrebbe essere :

TYPE;DATE;ARGS;DST\n
5;22012015;125,124,263,2\n
5;22012015;47,122,3,5\n
5;22012015;12,9,25,7\n
........ e altri in numero non determinato.

Al client, in questa fase interessa però solo la prima riga, l'intestazione, cioè: "TYPE;DATE;ARGS;DST\n", e la prende facendo un readline() appena dopo la connessione.

Durante l'esecuzione del programma, quando il client ha bisogno di un determinato dato, fà un richiesta al server e chiede il dato, il server risponde con una cosa del genere "5;22012015;12,9,25,7\n". Il problema è che dopo aver fatto la richiesta, se il client fa una readline() non trova la risposta alla sua richiesta, ma trova tutte le righe che il server ha mandato durante la connessione, ed in fondo al buffer la risposta.

Quello che devo fare é:
1) connettermi al server
2) leggere l'intestazione ("TYPE;DATE;ARGS;DST\n") con una readLine()
3) svuotare il buffer da tutte le righe che mi ha mandato e che non mi servono.
4) fare la mia richiesta al server
5) leggere la risposta dal buffer, che essendo stato svuotato nel punto 3 so che contiene solo la risposta e la posso leggere con un readline()

Quello che non so come fare è il punto 3.