![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заморозить прогу до приёма ответа? [D6, Win2k]
OlegL © (2002-11-09 11:44:00)Help! У меня простые клиент(ClientSocket) и сервер(ServerSocket) приложения, подскажите как "заморозить" клиента до получения ответа от сервера (StringStream). Может это связанно с синронизацией, в чём я ещё не очень..
Digitman (2002-11-12 15:26:00) [1]Нет смысла вообще вести дополнительный тайм-аут.
Winsock уже содержит встр.средства для обеспечения выдержки времени.
См. recv(), get/setsockopt()
Sheriff (2002-11-12 15:13:00) [2]у меня в подобных условиях тайм-аут определяется пингом.
средний результат утраивается...
эта величина и выставляется на таймере.
Digitman (2002-11-12 14:24:00) [3]Фиксированный тайм-аут в реальных, "боевых" условиях - штука оч ненадежная и может запросто "подвести"
Song (2002-11-12 14:19:00) [4]2Sheriff (12.11.02 09:54)
Тогда если подумать, можно перед циклом запустить таймер на какое-то время. По окончанию его времени вывести сообщение типа "Вы уверены, что у Вас всё Ok с соединением? Если не уверены, нажмите Abort". И при нажатии Abort выставить RecevingAnswer самому.
OlegL (2002-11-12 14:14:00) [5]Спасибо Song-у, всё работает.
"...а если ответа вообще не поступит? прога застрелится?"
:-)) это уже не мои вопросы, я делаю клиентскую часть. Но если серёзно то стоит подумать и над этим. Наверное буду ждать ответа сколько положенно (15-20 сек) а потом пойду дальше...Вот :-)
Sheriff (2002-11-12 09:54:00) [6]...а если ответа вообще не поступит? прога застрелится?
Song (2002-11-11 16:32:00) [7]ReceivingAnswer - это переменная типа Boolean, объявленная Вами. А поднимать её в True, Вы должны в обработчике сервера(клиента).
OlegL (2002-11-11 15:54:00) [8]Я конечно благодарен за идею но я не совсем понял...ReceivingAnswer чего? Ведь у меня ClientSocket и у него нету это. Может есть чего нибудь другое?
OlegL (2002-11-11 12:45:00) [9]Спасибо. сейчас попробую
Song (2002-11-09 13:52:00) [10]While not ReceivingAnswer Do Application.ProcessMessages;