Forse però non ho centrato il problema nel mio programma ho scritto

codice:
socket = s.accept();
s.close();
e mi viene sollevata l'eccezione

java.net.SocketException: socket closed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at cbbp.Server.run(Server.java:35)

quindi credo che se distruggo il serversocket si crea un riferimento ad un oggetto null che è socket,almeno questo è quello che in questo momento mi viene in mente,poi dimmi un pò tu se sono totalmente fuoristrada o in quello che ho detto c'è qualcosa di fondato...