Вы можете установить переменную "stop", которую поток проверяет после каждого соединения.Затем подключитесь к порту потока, чтобы разбудить его.
Другой подход - установить тайм-аут с вызовом на soTimeout()
и проверять переменную «stop» после каждого соединения и по истечении времени ожидания.Вы, вероятно, не хотите устанавливать слишком короткое время ожидания.Это означает, что поток не остановится немедленно, поэтому он может не работать для вас, если требуется быстрое завершение работы.
Вы также можете вызывать close () непосредственно в ServerSocket, если это возможно, как упомянуто Марком Петерсом.