| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Как перехватить сообщение с сервера |
| Автор: Alehandr 18.9.2006, 11:38 |
| Привет народ. Подскажите как лучше решить проблему надо с сервера отправить сообщение клиенту но сам клиент у сервера ничего не запрашивает, как лучше его перехватить на сервере если постояно читать сообщение на клиенто то он будет зависать. Подскажите как лучше ето реализовать |
| Автор: Snowy 18.9.2006, 12:08 |
| Либо читай в отдельно треде, либо перестрой сокет на асинхронный и лови сообщение. |
| Автор: 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 |
| ладно спасибо за помощь |