E' per questo che bisogna stare attenti con la programmazione client/server.
I controlli vanno fatti prima delle accept: se entri nella accept() gli unici modi per uscirne sono

1) Arriva una richiesta di connessione da un client
2) La accept() va in errore per chissà quale motivo
2) La accept termina perchè è stato impostato un timeout
3) L'applicazione termina.

Non hai vie di scampo: devi sapere prima della accept se accettare altre connessioni o meno, oppure impostare un TimeOut (con il metodo setSoTimeout() della Serversocket).

Se non sai a priori questa cosa e non setti un timeout, l'unica tua possibilità è inserire la accept() in un thread separato che, all'occorrenza, venga "ucciso" brutalmente.


Ciao.