Форум: "Сети";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизЧто-то непонятное с TidTCPServer и TidTCPClient Найти похожие ветки
← →
Lucifer (2004-07-25 17:35) [0]В общем такая ситуация:
Есть клиент который посылает запрос на сервер (команду)
Сервер начинает работать - при этом назад возвращает постоянно данные, Клиент выводит их в Memo.
Когда завершается работа сервера - посылает строку EOF и клиент дисконнектится
Вот куски кода:
Клиент:
--------------------
Client.Connect;
Client.WriteLn("COMMAND");
while TRUE do begin
s:=Client.ReadLn;
Memo1.Lines.Add(s);
Application.ProcessMessages;
if s="EOF" then break;
end;
Client.Disconnect;
----------------------
Сервер:
Выполняет различные действия и при этом постоянно отсылает клиенту состояние такой процедурой:
-------------------
procedure sendstr(AThread: TIdPeerThread;s:String);
begin
AThread.Connection.OpenWriteBuffer;
AThread.Connection.Writeln(s);
AThread.Connection.CloseWriteBuffer;
end;
--------------------
Проблема в том что сервер отрабатывет до конца (веду логи) - но клиент не все принимает - причем каждый раз может "застрять"
на разном месте - иногда и до конца отрабатывает
Клиент и сервер стоят на одном компе
← →
Lucifer (2004-07-25 17:41) [1]Да и чуть не забыл - когда клиент ждет сообщение по ReadLn он загружает процессор на полную - должно ли так быть?
← →
MetalFan © (2004-07-26 16:25) [2]
> s:=Client.ReadLn;
S := Client.ReadLn("", <значение таймаута в милисек>);
или вынеси в отдельный поток
← →
Lucifer (2004-07-27 13:34) [3]Да через поток все пошло
а вот
S := Client.ReadLn("", <значение таймаута в милисек>);
не помогло
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.047 c