Las respuestas cortas son:
1) sin
2) sí
La respuesta larga es:
Las esperas ServerSocket para los clientes se conecten (él espera en su método de aceptación). Cuando hay un cliente, el método accept devuelve, más específicamente, devuelve un objeto Socket que luego representa el punto final del servidor de la conexión servidor-cliente. Si el servidor cierra su socket de servidor, ya no escucha (ya no acepta nuevos clientes), pero los clientes con los que ya tiene una conexión de socket no se ven afectados.
Su código no es "incorrecto" per se, sin embargo, solo es capaz de aceptar un solo cliente y solo si está conectado dentro de 1000 milisegundos.
Aquí está una introducción incluyendo código de ejemplo:
http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html
eh? ¿Qué tiene que ver con mi pregunta? –