Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: CL | DM;

Вниз

Как заморозить прогу до приёма ответа?   Найти похожие ветки 

 
OlegL ©   (2002-11-09 11:44) [0]

Help! У меня простые клиент(ClientSocket) и сервер(ServerSocket) приложения, подскажите как "заморозить" клиента до получения ответа от сервера (StringStream). Может это связанно с синронизацией, в чём я ещё не очень..


 
Song ©   (2002-11-09 13:52) [1]

While not ReceivingAnswer Do Application.ProcessMessages;


 
OlegL ©   (2002-11-11 12:45) [2]

Спасибо. сейчас попробую


 
OlegL ©   (2002-11-11 15:54) [3]

Я конечно благодарен за идею но я не совсем понял...ReceivingAnswer чего? Ведь у меня ClientSocket и у него нету это. Может есть чего нибудь другое?


 
Song ©   (2002-11-11 16:32) [4]

ReceivingAnswer - это переменная типа Boolean, объявленная Вами. А поднимать её в True, Вы должны в обработчике сервера(клиента).


 
Sheriff   (2002-11-12 09:54) [5]

...а если ответа вообще не поступит? прога застрелится?


 
OlegL ©   (2002-11-12 14:14) [6]

Спасибо Song-у, всё работает.
"...а если ответа вообще не поступит? прога застрелится?"
:-)) это уже не мои вопросы, я делаю клиентскую часть. Но если серёзно то стоит подумать и над этим. Наверное буду ждать ответа сколько положенно (15-20 сек) а потом пойду дальше...Вот :-)


 
Song ©   (2002-11-12 14:19) [7]

2Sheriff (12.11.02 09:54)
Тогда если подумать, можно перед циклом запустить таймер на какое-то время. По окончанию его времени вывести сообщение типа "Вы уверены, что у Вас всё Ok с соединением? Если не уверены, нажмите Abort". И при нажатии Abort выставить RecevingAnswer самому.


 
Digitman ©   (2002-11-12 14:24) [8]

Фиксированный тайм-аут в реальных, "боевых" условиях - штука оч ненадежная и может запросто "подвести"


 
Sheriff   (2002-11-12 15:13) [9]

у меня в подобных условиях тайм-аут определяется пингом.
средний результат утраивается...
эта величина и выставляется на таймере.


 
Digitman ©   (2002-11-12 15:26) [10]

Нет смысла вообще вести дополнительный тайм-аут.
Winsock уже содержит встр.средства для обеспечения выдержки времени.

См. recv(), get/setsockopt()



Страницы: 1 вся ветка

Текущий архив: 2003.01.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
6-37259
Hirara
2002-11-10 00:13
2003.01.13
Про сокеты


1-37009
Step[B.M.]
2003-01-01 14:25
2003.01.13
Как посимвольно читая char отреагировать на 0 символ


14-37291
ZORRO
2002-12-20 09:51
2003.01.13
Сайт


1-37212
Zelius
2002-12-30 15:21
2003.01.13
Как в консольном приложении реализовать Press any key при выходе?


4-37457
GROL
2002-11-25 12:23
2003.01.13
Как определить экранные координаты Menu?