Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Разработка сервера



В коде сервера в первую очередь нужно указать библиотеке поддержки RPC, какой протокол собирается использовать сервер и как идентифицировать сервер в соответствии с этим протоколом (какая его конечная точка - endpoint).

RPC_STATUS RPC_ENTRY RpcServerUseProtseqEp(unsigned char *prot.

unsigned int max_calls, unsigned char *endpoint, void *sec_desc);

где: prot - строка, которая определяет протокол ("ncacn_ip_tcp" - TCP/IP, "ncacn_np" -поіменовані каналы);

max_calls — максимальное количество соединений с сервером (значения по умолчанию задают как RPC_C_LISTEN_MAX_CALLS_DEFAULT);

endpoi nt — строка, которая определяет конечную точку (для TCP/IP он задает порт, для поименованных каналов — имя канала).

Эта функция возвращает статус RPC-вызова; если он равняется 0 (RPCS0K) — вызов завершился успешно. Аналогичный код возвращают и другие RPC-функции.

// сервер использует TCP/IP. прослушивает порт 5000

RpcServerUseProtseqEp("ncacn_ip_tcp". 5. "5000", NULL);

После задання протокола необходимо зарегистрировать интерфейсы в библиотеке поддержки RPC для того, чтобы клиенты могли его находить:

// для каждого интерфейса из IDL-файла

RpcServerRegisterIf(ihello_v1_0_s_ifspec. NULL. NULL);

Первым параметром задают структуру определения интерфейса, которую генерирует rnidl.

Имя такой структуры строят на основании имени интерфейса и его версии: имя_v1_0_s_іfspec.

Теперь клиенты смогут найти сервер, и можно перейти в режим ожидания соединений:

// ожидание соединений от клиентов

RpcServerListen(1, 5. FALSE);

Перед завершением работы сервер должен упразднить регистрацию своих интерфейсов в библиотеке поддержки

RpcServerUnregisterlf(NULL. NULL. FALSE);





Дата публикования: 2015-04-07; Прочитано: 243 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...