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


Соединение клиентов с именованным каналом



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

6. Соединение клиентов с именованным каналом
[1]


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


Компьютерные сети - курс лекций Гуманитарный факультет
12
BOOL WaitNamedPipe (
LPCTSTR lpNamedPipeName,
// указатель на имя канала
DWORD nTimeOut
// интервал ожидания
) ;
В случае успешного завершения эта функция возвращает ненулевое значе- ние, а в случае неудачи
FALSE
Опишем параметры этой функции.
Параметр lpNamedPipeName указывает на строку, которая должна иметь вид:
\\server_name\pipe\pipe_name
Здесь server_name обозначает имя компьютера, на котором выполняется сервер именованного канала, слово pipe фиксировано, a pipe_name задает имя именованного канала.
Параметр nTimeOut задает временной интервал, в течение которого клиент ждет связь с сервером. Этот временной интервал определяется в миллисекундах или может быть равен одному из следующих значений:
- N
MPWAIT
_
USE
_
DEFAULT
_
WAIT
— интервал времени ожидания определяется значением параметра nDefauitTimeout, который задается в функции
CreateNamedPipe;
- N
MPWAIT
_
WAIT
_
FOREVER
— бесконечное время ожидания связи с имено- ванным каналом.
Сделаем замечания относительно работы функции WaitNamedPipe.
1. Если заранее известно, что сервер вызвал функцию ConnectNamedPipe, то функция соединения клиента с каналом CreateFile (см. далее) может вызываться без предварительного вызова функции WaitNamedPipe.
2. Если не существует экземпляров именованного канала с именем
IpNamedPipe, то функция WaitNamedPipe немедленно завершается неудачей независимо от времени ожидания, заданного параметром nTimeOut.
3. Если клиент соединяется с каналом до вызова сервером
ConnectNamedPipe, то функция WaitNamedPipe возвращает значение FALSE и функция
GetLastError вернет код
ERROR
_
PIPE
_
CONNECTED
Поэтому
WaitNamedPipe нужно вызывать только после соединения сервера с каналом посредством функции ConnectNamedPipe


Компьютерные сети - курс лекций Гуманитарный факультет
13


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




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

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