Вопрос

Поэтому я использую TIDHTTP, чтобы сделать последующие запросы. Когда я пытаюсь установить Connectimeout любой период времени, не имеет никакого эффекта. Я все еще жду ~ 5 сек, прежде чем получить исключение. Заранее спасибо!

Это было полезно?

Решение

Если вы подключаетесь к имени хоста вместо IP-адреса, имя хоста должно быть разрешено для IP-адреса через дисплею DNS, который может занять время, особенно если имя хоста не было кэшировано ОС. Свойство ConnectTimeout не учитывается на этот раз.

Кроме того, когда ConnectimeOut не ноль, или если используется TIDANTIFREEEZE, Indy должен использовать внутреннюю рабочую резьбу для выполнения фактического вызова Socket API Connect () на сервер. Запуск новой поток может занять некоторое время, в зависимости от имеющихся системных ресурсов в этот момент. TimeTimeout не учитывает это время.

Текущая реализация Connectime Note применяется только к фактическому вызову Socket API Connect (), а не к какой-либо из дополнительных работ, необходимых для достижения этой точки. Таким образом, если у вас есть 5-секундный набор значений ConnectTimeout, можно расширить более 5 секунд для TiDTCPClient.connect ().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top