Ожидание запросов клиента

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

Для того, чтобы получать запросы к удаленным процедурам, серверная программа должна использовать функцию RpcServerListen, как показано в следующем примере:

RPC_STATUS status;

status = RpcServerListen(

1,

RPC_C_LISTEN_MAX_CALLS_DEFAULT,

0);

Сервер RPC использует один или несколько потоков, которые принимают клиентские запросы и доставляют их к процедурам, зарегистрированных интерфейсов. Первый аргумент – это минимально число потоков, которые необходимо создать. Этот параметр является всего лишь рекомендацией, run-time RPC может проигнорировать его.

Второй аргумент – это максимальное число одновременно обслуживаемых запросов. Если вы хотите использовать максимальное значение по умолчанию, укажите RPC_C_LISTEN_MAX_CALLS_DEFAULT.

Согласно спецификации DCE, функция RpcServerListen должна выолняться до тех пока она не получит сигнал остановки. Одним из расширений стандарта Microsoft является возможность разрешения обслуживания запросов и продолжение выполнение основного потока приложения. Если вы хотите использовать стандартное поведение согласно DCE, то укажите в третьем аргументе ноль.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: