Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Интересный Вопрос


S@shka ©   (2002-06-21 19:01:00) 

Товарищи. Наткнулся вот на с какой проблемой.
Предположим есть клиент-сервер, бщающиеся по определенному протоколу.
клиент задает вопросы и сервер на них овечает (допустим).
Клиент - форма с Таймером. (реализованы на TNMMSGServ TNMMsg)
Клиент отсуает запрос активизируется таймер и он через определенное время опрашивает переменную, которая устанавливается при событии OnMsg TNMMsgServ
Так вот никаких проблем нет если процедура выглядит так...
procedure DoSomeThing
begin
......
NMMsgPostIT (asString); // отправяем команду а сервер
Timer1.Enabled:=true; // активизируем таймер
end;
Одноко необходимо сделать цикл действий и вот тут глюк (естественно)
procedure DoSomeThingMore
begin
......
for i:=1 to N do begin
NMMsgPostIT (asString); // отправяем команду а сервер
Timer1.Enabled:=true; // активизируем таймер
end;
end;
здесь уже нет корректной работы. Т.к. необходимо чтобы клиент полал строку, затем через время (таймера) посмотрел а не пришел ли ответ, после этого послал следующую коману и т.д.
Как сделать ЗАДЕРЖКУ необходимую.
КТО ЧТО НИТЬ ПОНЯЛ помогите как говориться чем можите.
С уважением Александр.


Cobalt   (2002-06-22 11:02:00) [1]

Я так понимаю, что вопрос ао алгоритму...
Если время ответа сравнимо мало, то можнл делать так:
цикл от 1 до Н
(посылаем команду;
АктивизируемТаймер
пока нет ответа
ждем;
//типа, ответ пришел - выходим из ожидания
СмотримОтвет
)//посылаем след. команду /\


Наверх

Титульная страница Поиск, карта сайта Написать письмо