Nel while metti il read e lui legge sempre, poi e' questione di RFC perche' puo' essere che e' il client che termina la connessione in base hai dati che gli mandi