ВУЗ:
Составители:
22
void main(void)
{
RpcServerUseProtseqEp(...);
RpcServerRegisterIf(...);
RpcServerListen(...);
}
RpcServerUseProtseqEp идентифицирует пункт назначения (endpoint)
сервера и последовательность сетевых протоколов. RpcServerRegisterIf ре-
гистрирует интерфейс, а RpcServerListen инструктирует сервер начать про-
слушивание запросов клиента.
Программа сервера должна также включить две функции, вызываемые
серверными стабами, midl_user_allocate и midl_user_free. Эти функции
распределяют и освобождают память на сервере при необходимости, когда уда-
ленная процедура должна передать параметры . В следующем примере,
midl_user_allocate и midl_user_free реализованы с использованием
библиотечных C-функций malloc и free:
void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
{
return(malloc(len));
}
void __RPC_API midl_user_free(void __RPC_FAR * ptr)
{
free(ptr);
}
Полный код для HELLOS.C выглядит следующим образом :
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "hello.h" // заголовок, сгенерированный
// компилятором MIDL
void Usage(char * pszProgramName)
{ fprintf(stderr, "%s", PURPOSE);
fprintf(stderr, "Usage: %s\n", pszProgramName);
fprintf(stderr, " -p protocol_sequence\n");
fprintf(stderr, " -e endpoint\n");
fprintf(stderr, " -m maxcalls\n");
fprintf(stderr, " -n mincalls\n");
fprintf(stderr, " -f flag_wait_op\n");
exit(1);
}
22 void main(void) { RpcServerUseProtseqEp(...); RpcServerRegisterIf(...); RpcServerListen(...); } RpcServerUseProtseqEp идентифицирует пункт назначения (endpoint) сервера и последовательность сетевых протоколов. RpcServerRegisterIf ре- гистрирует интерфейс, а RpcServerListen инструктирует сервер начать про- слушивание запросов клиента. Программа сервера должна также включить две функции, вызываемые серверными стабами, midl_user_allocate и midl_user_free . Эти функции распределяют и освобождают память на сервере при необходимости, когда уда- ленная процедура должна передать параметры. В следующем примере, midl_user_allocate и midl_user_free реализованы с использованием библиотечных C-функций malloc и free: void __RPC_FAR * __RPC_API midl_user_allocate(size_t len) { return(malloc(len)); } void __RPC_API midl_user_free(void __RPC_FAR * ptr) { free(ptr); } Полный код для HELLOS.C выглядит следующим образом: #include#include #include #include "hello.h" // заголовок, сгенерированный // компилятором MIDL void Usage(char * pszProgramName) { fprintf(stderr, "%s", PURPOSE); fprintf(stderr, "Usage: %s\n", pszProgramName); fprintf(stderr, " -p protocol_sequence\n"); fprintf(stderr, " -e endpoint\n"); fprintf(stderr, " -m maxcalls\n"); fprintf(stderr, " -n mincalls\n"); fprintf(stderr, " -f flag_wait_op\n"); exit(1); }
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »