Sto scrivendo un server in java, il thread principale si occupa solamente di accettare connessioni con i client tenendone traccia (con i Socket restituiti da accept) in un ArrayList<Socket> e poi ne delega la gestione del protocollo di comunicazione ad un altro thread.
Il mio problema è come far sapere al server principale che un client si è disconnesso (ad esempio un client telnet che chiude telnet senza seguire il protocollo).

Qualcuno ha qualche idea? o mi devo basare solamente sul protocollo (ad esempio su un comando quit)? oppure devo solamente usare i timeout?

Grazie.