Я использую старые библиотеки на основе JDK 1.4, и я обнаружил, что существует огромный тайм-аут для попыток подключения к неисключительным URL-адресам. Исследование показало следующую проблему:Как переопределить тайм-аут TCP по умолчанию
До JDK 1.5 не было задано значение для таймаута соединения в объекте URLConnection. Вместо этого он просто использовал значение тайм-аута уровня ОС по умолчанию для таймаута TCP (которое по умолчанию составляет 1800 секунд/30 минут). JDK1.5 и после этого включил опцию для установки пользовательского тайм-аута, который отменяет настройку по умолчанию, предоставляемую операционной системой.
Возможно ли переопределить параметр «Настройка времени ожидания TCP» из java, поэтому код, написанный на java 1.4, использует эти параметры?
Это не влияет на таймауты подключения. Это влияет на таймаут чтения. Он также не устанавливает тайм-аут записи. -1 – EJP
А, простите, я этого не видел. Вы можете изменить вызов для подключения? Я вижу, что у него есть параметр тайм-аута. Или библиотека использует что-то вроде SocketChannel? Если последнее, извлечение сокета (socket()) и выполнение соединения вручную работает (если моя память служит мне правильно). Или у вас есть достаточный доступ для установки socketchannel как неблокирующего (для подключения)? –