
Originariamente inviata da
andbin
La questione è il "protocollo" di comunicazione ad alto livello che hai scelto per scambiare dati tra client e server.
Spiego meglio: il tuo protocollo innanzitutto è testuale, fatto "a righe". Su questo non ci sono problemi.
Il client però è totalmente ignaro di cosa viene scambiato, perché tutto è "pilotato" da cosa il server invia al client ed è l'utente "umano" che interpreta e capisce cosa chiede il server e quindi risponde a tono inviando una riga al server.
Con un protocollo del genere non puoi fare molto ... perché tutto è pilotato dal server. Ragionaci su un attimo:
1) Il Server invia una riga al Client
2) Il Client riceve la riga e la stampa a video
3) L'utente legge la riga stampata a video, capisce la richiesta e scrive lui una riga che viene inviata al Server
4) Il Server "sa" che cosa rappresenta una riga ricevuta (lo sa perché è LUI, il Server, che pilota la comunicazione), facendo es. String username=in.nextLine(); quindi QUI sa che si aspetta uno username
La logica si ripete dal punto 1)
Ma in tutto questo il Client NON sa che cosa succede. E quindi come potrebbe "sapere" di dover ricevere 2 righe invece che una o di dover inviare es. 2 righe in un colpo solo invece che una?
Devi cambiare qualcosa a livello del "protocollo" .....