Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Как перехватить сообщение с сервера


Автор: Alehandr 18.9.2006, 11:38
Привет народ.
Подскажите как лучше решить проблему надо с сервера отправить сообщение клиенту но сам клиент у сервера ничего не запрашивает, как лучше его перехватить на сервере если постояно читать сообщение на клиенто то он будет зависать. Подскажите как лучше ето реализовать

Автор: Snowy 18.9.2006, 12:08
Цитата(Alehandr @  18.9.2006,  11:38 Найти цитируемый пост)
 если постояно читать сообщение на клиенто то он будет зависать
Либо читай в отдельно треде, либо перестрой сокет на асинхронный и лови сообщение.

Автор: Alehandr 18.9.2006, 12:23
Да а если читать в треде как мне потом определять пришло сообщение от сервере или ето клиент запросил сервер а то ему от ветил (ето если в кокой нить процедуре) так ведь может все перепутаться и будет не понятно что ето за сообщение, в треде ведь все сообщения будут перехватываться. Или что то не так понял.

Автор: Snowy 18.9.2006, 12:32
А это не зависит от того, как ты ловишь сообщение.
Что сервер пришлёт, то ты и получишь.
Где гарантия, что послав запрос серверу, в ответ ты получишь ответ на него, а не что-то другое?
Канал-то один. Поэтому каждое сообщение должно себя идентифицировать, если ты хочешь их отличать.
Например говоришь серверу "Дай мне данные №22", сервер должен ответить: "вот тебе данные №22, длина такая-то, данные.......". А ты уже независимо от запроса смотришь: "Сервер прислал мне данные №22, значит нужно с ними сделать то-то". А просил ты их или нет - не важно - отрабатывай всегда.
Это и называется протоколом.

Автор: Alehandr 18.9.2006, 13:03
А где можно про ето поподробней прочитать или где можно примерчик взять, а то просто стало все путаться в голове )

Автор: Snowy 18.9.2006, 13:26
А нигде - создание кустомного протокола - это уже разработка архитектуры проекта.
Это нужно самому придумывать.

Автор: Alehandr 18.9.2006, 13:32
ладно спасибо за помощь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)