Если вы подключаетесь к имени хоста вместо IP-адреса, имя хоста должно быть преобразовано в IP через поиск DNS, что может занять некоторое время, особенно если ОС еще не кэшировала имя хоста.Свойство ConnectTimeout не учитывает это время.
Кроме того, когда ConnectTimeout не равен нулю или если используется TIdAntiFreeze, Indy должен использовать внутренний рабочий поток для выполнения фактического вызова API-интерфейса сокетасервер.Запуск нового потока может занять некоторое время, в зависимости от доступных системных ресурсов на данный момент.ConnectTimeout также не учитывает это время.
Текущая реализация ConnectTimeout применяется только к самому вызову connect () API сокета, а не к какой-либо дополнительной работе, необходимой для достижения этой точки.Таким образом, если у вас установлено 5-секундное значение ConnectTimeout, можно пройти более 5 секунд, прежде чем TIdTCPClient.Connect () завершится.