Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизTIdTCPClient.Connect подвисает Найти похожие ветки
← →
mRodion © (2004-04-15 09:46) [0]Привет всем!
Использую компоненту Indy TCPClient для связи со специфическим сервером в сети по специфическому протоколу.
Подключение к серверу делается в общем случае так:
TCPSocket.Port:=FPort;
TCPSocket.Host := FHost;
TCPSocket.Connect (FInterval);
В случае когда Finterval задан большим (несколько секунд), а сервер не доступен, компонента, пытаясь подключиться, вешает намертво приложение. То есть пользователь не имеет возможности ни свернуть его, не развернуть, ни нажать какую-нибудь кнопку.
После заданного таймаута компонента возвращает ошибку и программа продолжает нормально работать.
Кто-нибудь знает, как побороть это подвисание? В общем-то Indy довольно распространены... Кстати, подобные проблемы наблюдаются и при использовании метода ReadLn, когда сервер по каким-то причинам задерживает ответ (или ответ идет по очень медленному каналу связи).
Использую Indy 9.0, D5, W2k
← →
Digitman © (2004-04-15 09:55) [1]простейшее решение - брось на форму с TIdTCPClient компонент TIdAntifreeze
← →
mRodion © (2004-04-15 10:18) [2]Опа!
Спасибо! Не знал.
А что делать, если я компонент TIdTCPClient кидаю не на форму, а создаю динамически в своим компонентах?
Просто создать еще и Антифриз?
← →
Digitman © (2004-04-15 10:30) [3]да.
если оба компонента создаются в осн.код.потоке (неважно как - динамически либо будучи "брошенными" на форму), то антифриз поможет в любом случае
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.053 c