Организация вычислительных процессов в ЭВМ. Лясин Д.Н - 16 стр.

UptoLike

Составители: 

16
Параметр nDefaultTimeOut задает умалчиваемое значение периода
ожидания подключения клиента к серверу функцией WaitNamedPipe. Это
значение впоследствии может быть переопределено.
После того, как сервер создаст канал, клиенты могут открыть этот ка-
нал с использованием функции CreateFile, указав в качестве имени файла
строку с именем канала. Получив дескриптор своего конца канала, клиент
использует
те же функции WriteFile и ReadFile для записи/чтения информа-
ции в/из канала.
Однако, для того чтобы синхронизировать работу сервера и его клиен-
тов (в частности, позволить серверу вести учет активных клиентов), преду-
смотрен другой механизм подключения клиента к серверу. В этом случае
сервер вызывает функцию ConnectNamedPipe, которая ожидает подключения
очередного клиента
к серверу и возвращает управление, когда соединение
будет установлено (если канал создан в блокирующем режиме). Клиент со
своей стороны должен вызвать функцию WaitNamedPipe:
BOOL WaitNamedPipe(
LPCTSTR lpNamedPipeName, // строка с именем канала
DWORD nTimeOut // интервал ожидания в мсек
);
Параметр nTimeOut определяет промежуток времени nTimeOut, в тече-
ние которого функция ожидает доступа к каналу. В случае успешного завер-
шения (
то есть, если сервер в это же время вызвал функцию
ConnectNamedPipe) функция возвращает TRUE. Таким образом, функция
WaitNamedPipe не открывает канал (это по-прежнему необходимо делать
функцией CreateFile), а лишь сообщает приложению- клиенту, когда канал
становится доступным.
     Параметр nDefaultTimeOut задает умалчиваемое значение периода
ожидания подключения клиента к серверу функцией WaitNamedPipe. Это
значение впоследствии может быть переопределено.
     После того, как сервер создаст канал, клиенты могут открыть этот ка-
нал с использованием функции CreateFile, указав в качестве имени файла
строку с именем канала. Получив дескриптор своего конца канала, клиент
использует те же функции WriteFile и ReadFile для записи/чтения информа-
ции в/из канала.
     Однако, для того чтобы синхронизировать работу сервера и его клиен-
тов (в частности, позволить серверу вести учет активных клиентов), преду-
смотрен другой механизм подключения клиента к серверу. В этом случае
сервер вызывает функцию ConnectNamedPipe, которая ожидает подключения
очередного клиента к серверу и возвращает управление, когда соединение
будет установлено (если канал создан в блокирующем режиме). Клиент со
своей стороны должен вызвать функцию WaitNamedPipe:
BOOL WaitNamedPipe(


        LPCTSTR lpNamedPipeName,        // строка с именем канала
        DWORD nTimeOut      // интервал ожидания в мсек
       );
     Параметр nTimeOut определяет промежуток времени nTimeOut, в тече-
ние которого функция ожидает доступа к каналу. В случае успешного завер-
шения (то есть,      если сервер в это же время вызвал функцию
ConnectNamedPipe) функция возвращает TRUE. Таким образом, функция
WaitNamedPipe не открывает канал (это по-прежнему необходимо делать
функцией CreateFile), а лишь сообщает приложению- клиенту, когда канал
становится доступным.




                                   16