Составители:
Рубрика:
вращает данные немедленно. Он посылает их только при последующих изме-
нениях запрашиваемого элемента. В ответ на сообщение XTYP_ADVSTART
сервер часто устанавливает флаг, «напоминающий» ему о том, что поступил
запрос на обновление данных. При любых изменениях сервер проверяет со-
стояние этого флага и, если он установлен, вызывает функцию
DdePostAdvise(), которая уведомляет DDEML о поступлении новых данных,
интересующих клиента.
Сервер не должен помнить о том, какой из клиентов послал данный за-
прос, – DDEML решает эту задачу собственными средствами. По заданным
именам темы и элемента, которые передаются сервером для идентификации
доступных данных, DDEML определяет, какой из клиентов «находится на свя-
зи» и каким, обязательным или полуобязательным, является подключение.
В случае обязательного подключения DDEML немедленно отправляет
серверу сообщение XTYP_ADVREQ,
получает от него данные и передает их
клиенту в виде сообщения XTYP_ADVDATA.
Этапы этого процесса можно
представить следующим образом (рис. 9.2):
1. Инициатором сеанса выступает клиент, а сервер откликается на его
запрос, посылая ответ TRUE.
2. Сервер информирует DDEML о наличии новых данных. DDEML оп-
ределяет, что данное подключение является обязательным, и запрашивает дан-
ные, а затем передает их приложению -клиенту. Этот этап повторяется каждый
раз при получении сервером новых данных.
3. Клиент разрывает подключение, посылая сообщение
XTYP_ADVSTOP, в
ответ на которое сервер возвращает NULL.
Рис. 9.2. Цикл транзакции с обязательным ответом
9.3.3. Транзакции с полуобязательным ответом
В случае подключения с полуобязательным ответом DDEML также получа-
123
вращает данные немедленно. Он посылает их только при последующих изме-
нениях запрашиваемого элемента. В ответ на сообщение XTYP_ADVSTART
сервер часто устанавливает флаг, «напоминающий» ему о том, что поступил
запрос на обновление данных. При любых изменениях сервер проверяет со-
стояние этого флага и, если он установлен, вызывает функцию
DdePostAdvise(), которая уведомляет DDEML о поступлении новых данных,
интересующих клиента.
Сервер не должен помнить о том, какой из клиентов послал данный за-
прос, – DDEML решает эту задачу собственными средствами. По заданным
именам темы и элемента, которые передаются сервером для идентификации
доступных данных, DDEML определяет, какой из клиентов «находится на свя-
зи» и каким, обязательным или полуобязательным, является подключение.
В случае обязательного подключения DDEML немедленно отправляет
серверу сообщение XTYP_ADVREQ, получает от него данные и передает их
клиенту в виде сообщения XTYP_ADVDATA. Этапы этого процесса можно
представить следующим образом (рис. 9.2):
1. Инициатором сеанса выступает клиент, а сервер откликается на его
запрос, посылая ответ TRUE.
2. Сервер информирует DDEML о наличии новых данных. DDEML оп-
ределяет, что данное подключение является обязательным, и запрашивает дан-
ные, а затем передает их приложению -клиенту. Этот этап повторяется каждый
раз при получении сервером новых данных.
3. Клиент разрывает подключение, посылая сообщение XTYP_ADVSTOP, в
ответ на которое сервер возвращает NULL.
Рис. 9.2. Цикл транзакции с обязательным ответом
9.3.3. Транзакции с полуобязательным ответом
В случае подключения с полуобязательным ответом DDEML также получа-
123
Страницы
- « первая
- ‹ предыдущая
- …
- 121
- 122
- 123
- 124
- 125
- …
- следующая ›
- последняя »
