ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »
