Учебно-методический комплекс по учебной дисциплине «компьютерные сети»



Pdf просмотр
страница5/100
Дата19.07.2022
Размер1.22 Mb.
#130979
ТипУчебно-методический комплекс
1   2   3   4   5   6   7   8   9   ...   100
umk seti chast 2
1703
4. Создание именованных каналов
[1]

Именованные каналы создаются процессом-сервером при помощи
функции CreateNamedPipe
, которая имеет следующий прототип:
HANDLE
CreateNamedPipe
(
LPCTSTR lpName, //
имя канала
DWORD dwOpenMode, //
атрибуты
DWORD dwPipeMode, //
режим передачи данных
DWORD nMaxInstances, //
максимальное количество экземпляров канала
DWORD nOutBufferSize, //
размер выходного буфера
DWORD nInBufferSize, //
размер входного буфера
DWORD nDefaultTimeOut, //
время ожидания связи с клиентом
LPSECURITY_ATTRIBUTES lpPipeAttributes //
атрибуты безопасности
);
При удачном завершении функция CreateNamedPipe возвращает дескриптор именованного канала, а в случае неудачи — одно из двух значений:
-
INVALID
_
HANDLE
_
VALUE
— неудачное завершение;


Компьютерные сети - курс лекций Гуманитарный факультет
9
-
ERROR
_
INVALID
_
PARAMETR
— значение параметра nMaxinstances больше, чем величина
PIPE
_
UNLIMITED
_
INSTANCES
Опишем параметры этой функции.
Параметр lpName указывает на строку, которая должна иметь вид:
\\ .\pipe\pipe_name
Здесь "." (точка) обозначает локальную машину, т. к. новый именованный канал
всегда

создается на локальной машине; слово pipe — фиксировано, a pipe_name обозначает имя канала, которое задается пользователем и нечувствительно к
регистру.
Параметр dwOpenMode задает флаги, которые определяют направление передачи данных, буферизацию, синхронизацию обмена данными и права доступа к именованному каналу. Для определения направления передачи данных используются флаги:

PIPE
_
ACCESS
_
DUPLEX
— чтение и запись в канал;

PIPE
_
ACCESS
_
INBOUND
— клиент пишет, а сервер читает данные

PIPE
_
ACCESS
_
OUTBOUND
сервер пишет, а клиент читает данные.
Флаг, определяющий направление передачи данных по именованному кана- лу, должен совпадать для всех экземпляров одного и того же именованного канала.
Для определения способа буферизации и синхронизации используются флаги:

FILE
_
FLAG
_
WRITE
_
THROUGH
— запрещает буферизацию при передаче данных по сети;

FILE
_
FLAG
_
OVERLAPPED
— разрешает асинхронную передачу данных по каналу.
Эти флаги могут быть разными для каждого экземпляра одного и того же именованного канала.
В этом же параметре могут быть заданы другие режимы доступа к имено- ванному каналу.
Флаги, используемые для определения атрибутов безопасности,
PIPE
_
ACCESS
_
DUPLEX
,
PIPE
_
ACCESS
_
INBOUND и
PIPE
_
ACCESS
_
OUTBOUND
,
определяют специфические права доступа к именованному каналу, которые включают следующие родовые права доступа:
-
P
IPE
_
ACCESS
_
DUPLEX
— включает родовые права доступа
GENERIC
_
READ
,
GENERIC_WRITE и SYNCHRONIZE;


Компьютерные сети - курс лекций Гуманитарный факультет
10
-
PIPE
_
ACCESS
_
INBOUND
— включает родовые права доступа
GENERIC
_
READ и
SYNCHRONIZE
;
-
PIPE
_
ACCESS
_
OUTBOUND
— включает родовые права доступа
GENERIC
_
WRITE и SYNCHRONIZE.


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   100




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница