l'IOException è generata dall' OutputStream ma non significa solamente che il client s'è disconnesso.
Può essere anche un errore di memoria, oppure un errore di scrittura che riprovando a scrivere può funzionare.

Per vedere se il client s'è disconnesso devi mandargli un messaggio ad intervalli regolari di 10-20 sec così sicuramente se non risponde entro quel tempo è caduto.