Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.23;
Скачать: CL | DM;

Вниз

TIdTCPClient таймаут   Найти похожие ветки 

 
avsam   (2009-05-19 17:38) [0]

Программа рассылает сообщения по сети с помощью TIdTCPClient.
Количество клиентов около 20. Сообщения рассылаются в отдельном Thread для каждого.
После этого ждется завершение.

Если клиент недоступен, TIdTCPClient.connect вылетает с таймаутом.
Этот таймаут длится очень долго.
Как можно быстро проверить, доступен ли клиент?
Есть ли возможность поменять таймаут для TIdTCPClient.
Delphi 6, Indy 8.025


 
CrytoGen   (2009-05-19 19:21) [1]

TIdTCPClient.Connect(TimeOut)


 
avsam   (2009-05-19 20:23) [2]

Версия Indy 8.025 имеет только TIdTCPClient.Connect;
Эта версия стандартная, идет в поставке с Delphi 6.
Поменять на новую 10.1.5 не могу.
Может можно сначала пинг проверять?


 
Сергей М. ©   (2009-05-19 22:15) [3]


> avsam   (19.05.09 20:23) [2]


А что , в 8-ке нет св-ва ConnectionTimeout ? Я просто не в курсе ..


> Может можно сначала пинг проверять?


Целевое сервис может быть активным, но при этом целевое устройство не обязано отвечать на пингующие запросы. Мало того, любое устройство на маршруте от узла-источника к узлу-приемнику может и вправе выкидывать пингующие пакеты по капризу админов этого устройства.

Вот тебе реальный пример:

ping faktura.ru - шиш с маслом, будто бы хост не существует или недоступен

А теперь в браузере обратись по ссылке http://faktura.ru - расчудесно подключишься и получишь ответ web-сервера


 
DVM ©   (2009-05-20 00:15) [4]


> avsam

В Indy старых версий никак, вьсвое время отказался от инди в одной задаче именно по этой причине, т.к. не мог заврешить в приемлемое время пару десятков потоков, висящих на connect(). Сделал сам неблокирующий connect(), на неблокирующих сокетах.


 
CrytoGen   (2009-05-20 04:29) [5]

Может тогда всё-же попробовать обновить инди до 9-го?


 
avsam   (2009-05-26 16:30) [6]

Обновил дл 9-й версии.
> TIdTCPClient.Connect(TimeOut)
В чем задается таймаут? Секунды, секунды*1000 или тики?


 
Сергей М. ©   (2009-05-26 16:42) [7]


> Обновил дл 9-й версии.


Надо было уж сразу до 10-ки..


> В чем задается таймаут?


В миллисекундах.



Страницы: 1 вся ветка

Текущий архив: 2011.10.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
2-1309411692
Prok186
2011-06-30 09:28
2011.10.23
Перешёл c Delphi7 на Delphi XE: проблемы с кирилицей в БД


2-1310057914
Славко
2011-07-07 20:58
2011.10.23
Вопрос по TTcpClient/Server


2-1309627110
Gu
2011-07-02 21:18
2011.10.23
Как сбросить LastError


15-1309120193
Юрий
2011-06-27 00:29
2011.10.23
С днем рождения ! 27 июня 2011 понедельник


2-1309625895
StuDD
2011-07-02 20:58
2011.10.23
Как проверить соединение с Интернетом через прокси (wininet)