Краткие ответы:
1) нет
2) да
Более длинный ответ:
ServerSocket ожидает подключения клиентов (он ожидает в методе accept).Когда есть клиент, метод accept возвращает, более конкретно, он возвращает объект Socket, который затем представляет конечную точку сервера соединения сервер-клиент.Если сервер закрывает свой сокет-сервер, он больше не слушает (он больше не принимает новых клиентов), но клиенты, с которыми у него уже есть сокет-соединение, не затрагиваются.
Ваш код не является "неправильным" в соответствии сОднако, он может принимать только одного клиента и только если он подключен в течение 1000 миллисекунд.
Вот введение, включающее пример кода:
http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html