Форум: "Сети";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Вниз---|Ветка была без названия|--- Найти похожие ветки
← →
SMKRZ (2003-11-01 17:14) [0]В общем проблема в следующем. Есть две программы: одна клиент (
idTCPClient
), другая сервер (IdTCPServer
). Серверов много, клиент один. Клиент выбирает из списка нужный хост, коннектится по нему, отсылает сообщение, получает ответ и рвёт связь, и по циклу выбирает следёющий хост и всё повторяется сначала... Проблема в том, что в это время с прилдожением нельзя работать, так как фактически оно зависшее , не реагируещее ни на какие события! Как с этим бороться?
Код клиента:
var ping : boolean;
...
try
form1.IdTCPClient1.Host:=get_ip; //выбор ай-пи из списка
Form1.IdTCPClient1.Connect;
form1.IdTCPClient1.WriteLn("ping");
Form1.IdTCPClient1.ReadLn;
except
ping:=false; //если есть ошибки, значит попытка закончилась неудачей
end;
Form1.IdTCPClient1.Disconnect;
Код сервера:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var mess : string;
begin
mess:=AThread.Connection.ReadLn;
SpeedButton1.Caption:=mess;
if mess="ping" then
AThread.Connection.WriteLn("pong");
AThread.Connection.Disconnect;
end;
← →
nv-vetal (2003-11-01 22:50) [1]Application.ProcessMessagess
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c