mentre per una socket normale non è possibile utilizzare il metodo close()?

in pratica ho scritto:
codice:
private ServerSocket s;
private Socket socket;

socket = s.accept();
una volta che scrivo s.close(), ovvero chiudo la ServerSocket, mi viene segnalato questo errore :
codice:
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)
non ho ancora capito a cosa è dovuto,forse perchè non distruggo il thread che fà governa il codice,anche se ho utilizzato this.interrupt()!