Текущий архив: 2002.12.26;
Скачать: CL | DM;
ВнизКак ждать ответа от сокета? Найти похожие ветки
← →
Repeater (2002-10-30 17:09) [0]Такая проблемка. Есть сокет. Я подконектился к хосту и послал данные. Как теперь программно "подождать" до того времени пока сервер не ответит. Тоесть пока сервер не прислал никаких данных программа должна остановится и ждать. А как только данные придут - продолжить свою работу. Можна чисто для винапи, а можно и применительно к TClientSocket.
← →
Rob (2002-10-30 17:18) [1]Попробуй после посылки данных запустить таймер. На событии onRead
запоминай ответ сервера в какой-нибудь переменной, которую после посылки данных "обнуляй". По таймеру проверяй ее значение и если оно "отлично от нуля", останавливай таймер и делай что надо.
← →
Repeater (2002-10-30 17:22) [2]Можно и так. Спасибо. Но сдается мне есть здесь более элегантное стандартное решение. Я просто в сокетах не очень пока. Потому хочу поучиться у более осведомленных нежели я.
← →
Rob (2002-10-30 17:28) [3]Ну... Например, в конец пересылаемых данных с сервера вставляй какую-нибудь последовательность символов и анализируй ответ. Если ожидаемая последовательность "выделена", то делай что надо.:)
← →
Repeater (2002-10-30 17:46) [4]Но сервер писал не я. Я его не заставлю что то выводить.
← →
Malder (2002-10-30 17:46) [5]Я подконектился к хосту и послал данные. Как теперь программно "подождать" до того времени пока сервер не ответит
Какой-то глупый вопрос. Нисего не делай пока не наступит событие onRead. Вот и все =)
← →
Repeater (2002-10-30 18:03) [6]Спасибо, что подсказал. Но мне нужно организовать диалог по спец протоколу. Тоесть надо что то определенное послать и ждать пока сервер ответит тоже что то определенное. А как я узнаю в OnRead, что серверу в данном конкретном случае посылать? Можно конечно ввести какой либо индикатор и по нему определять что надо посылать. Но это неудобно. Впрочем я уже вроде разобрался. Надо использовать синхронный режим сокета и TWinSocketStream.
Страницы: 1 вся ветка
Текущий архив: 2002.12.26;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c