ВУЗ:
Составители:
16
последовательности протоколов, и пункт назначения \pipe\hello. В приводимом
далее примере кода функция RpcStringBindingCompose комбинирует по-
следовательность протоколов, сетевой адрес (имя сервера), пункт назначения
( имя канала) и другие строковые элементы в форму, требующуюся для сле-
дующей функции, RpcBindingFromStringBinding , а также распределяет
память для размещения символьной строки. В свою очередь, RpcBinding-
FromStringBinding использует эту строку для генерации дескриптора, кото -
рый представляет связывание между сервером и клиентом . После того , как уда-
ленные вызовы процедур выполнены , RpcStringFree освобождает память,
которая была распределена RpcStringBindingCompose для структуры дан -
ных строки связывания. RpcBindingFree освобождает дескриптор.
Строка связывания (string binding), таким образом , является ключевым
понятием при реализации соединения программно- управляемого типа, по-
скольку содержит всю необходимую для этого информацию . Строка связыва-
ния состоит из нескольких подстрок , представляющих UUID интерфейса, по-
следовательность протоколов, сетевой адрес, пункт назначения и его опции.
Последовательность протоколов, в свою очередь, представляет сетевой RPC
протокол , а также определяет соглашения о соответствующем формате сетевых
адресов и об именовании пунктов назначения. Например , последовательность
протоколов ncacn_ip_tcp определяет протокол с установлением соединения,
в терминах NCA (Network Computing Architecture), над TCP/IP. При этом требу -
ется соответствующий формат представления сетевого адреса или имени серве-
ра, а пункт назначения обозначает серверный коммуникационный порт.
В общем случае последовательность протоколов содержит набор из трех
опций , которые должны быть определены для RPC-библиотеки времени вы -
полнения:
• RPC протокол , доступные опции – ncacn (NCA Connection-oriented) и
ncadg (Datagram-oriented);
• формат сетевого адреса, доступные опции – ip, dnet и osi;
• транспортный протокол , доступные опции – tcp, udp, nsp, dna, np
(named pipes) и nb (NetBIOS).
Заметим , что наиболее сложные распределенные приложения для получе-
ния дескриптора связывания должны использовать функции сервиса имен вме-
сто строк связывания. Функции сервиса имен позволяют серверу регистриро-
вать интерфейс, UUID, сетевой адрес и пункт назначения под одним логиче-
ским именем . Эти функции обеспечивают независимость расположения компо-
нентов приложения и легкость администрирования.
Полный текст программы клиента включает код для обработки ввода ко-
мандной строки и выглядит следующим образом :
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "hello.h" // заголовок, сгенерированный
// компилятором MIDL
16 последовательности протоколов, и пункт назначения \pipe\hello. В приводимом далее примере кода функция RpcStringBindingCompose комбинирует по- следовательность протоколов, сетевой адрес (имя сервера), пункт назначения (имя канала) и другие строковые элементы в форму, требующуюся для сле- дующей функции, RpcBindingFromStringBinding , а также распределяет память для размещения символьной строки. В свою очередь, RpcBinding- FromStringBinding использует эту строку для генерации дескриптора, кото- рый представляет связывание между сервером и клиентом. После того, как уда- ленные вызовы процедур выполнены, RpcStringFree освобождает память, которая была распределена RpcStringBindingCompose для структуры дан- ных строки связывания. RpcBindingFree освобождает дескриптор. Строка связывания (string binding), таким образом, является ключевым понятием при реализации соединения программно-управляемого типа, по- скольку содержит всю необходимую для этого информацию. Строка связыва- ния состоит из нескольких подстрок, представляющих UUID интерфейса, по- следовательность протоколов, сетевой адрес, пункт назначения и его опции. Последовательность протоколов, в свою очередь, представляет сетевой RPC протокол, а также определяет соглашения о соответствующем формате сетевых адресов и об именовании пунктов назначения. Например, последовательность протоколов ncacn_ip_tcp определяет протокол с установлением соединения, в терминах NCA (Network Computing Architecture), над TCP/IP. При этом требу- ется соответствующий формат представления сетевого адреса или имени серве- ра, а пункт назначения обозначает серверный коммуникационный порт. В общем случае последовательность протоколов содержит набор из трех опций, которые должны быть определены для RPC-библиотеки времени вы- полнения: • RPC протокол, доступные опции – ncacn (NCA Connection-oriented) и ncadg (Datagram-oriented); • формат сетевого адреса, доступные опции – ip, dnet и osi; • транспортный протокол, доступные опции – tcp, udp, nsp, dna, np (named pipes) и nb (NetBIOS). Заметим, что наиболее сложные распределенные приложения для получе- ния дескриптора связывания должны использовать функции сервиса имен вме- сто строк связывания. Функции сервиса имен позволяют серверу регистриро- вать интерфейс, UUID, сетевой адрес и пункт назначения под одним логиче- ским именем. Эти функции обеспечивают независимость расположения компо- нентов приложения и легкость администрирования. Полный текст программы клиента включает код для обработки ввода ко- мандной строки и выглядит следующим образом: #include#include #include #include "hello.h" // заголовок, сгенерированный // компилятором MIDL
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »