Несколько возможных причин возникновения ошибки Connection timed out при работе с сокетами:
Чтобы решить проблему, можно настроить параметры таймаута, оптимизировать производительность сети или обработать исключение в коде с учётом возможных задержек в процессе связи. 1
Также для предотвращения ошибки можно использовать метод Socket.setKeepAlive(), который поддерживает постоянное соединение между клиентом и сервером, снижая вероятность таймаутов и проблем с подключением. 1