Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.10.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1309369259
Dimka Maslov
2011-06-29 21:40
2011.10.23
Вот до чего техника дошла


2-1309595561
FolderS
2011-07-02 12:32
2011.10.23
Indy Socket error #0 при post запросе


15-1308891761
ZeroDivide
2011-06-24 09:02
2011.10.23
50 цитат о программировании всех времён


2-1309771257
adigozelov
2011-07-04 13:20
2011.10.23
pecat


15-1309267370
pavel_guzhanov
2011-06-28 17:22
2011.10.23
Размещу и я вакансию





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский