riletto bene. nemmeno con stream a byte risolvi.
Il punto è che si blocca sulla readline perché per lui la comunicazione è finita, ma non è chiusa la connessione, ergo è in attesa di altri dati.
Si dovrebbe in questo caso usare stream a byte, inviare quelli e usare sequenze note per la chiusura, altrimenti questo è un errore in cui cadi