Когда вы пишете сервер на Java, то вызываете serverSocket.accept(), которая останавливает поток и ждёт, пока появится какое-нибудь подключение. У метода accept нет никаких параметров, но если его вызвать напрямую, а подключения никогда не будет, то поток никогда не сдвинется дальше, и никакой исключительной ситуации по таймауту не будет. Причём будет совершенно непонятно, работает приложение или висит, и чем оно вообще занимается, так как в логах ничего появляться не будет.
Для того чтобы настроить таймаут ожидания подключения нужно использовать метод setCoTimeout:
1 2 3 4 5 |
try (ServerSocket serverSocket = new ServerSocket(SERVER_PORT)) { serverSocket.setSoTimeout(60000); Socket socket = serverSocket.accept(); ... } |
Вот так