Составители:
структуру  имен  системных  объектов.  Строки,  содержащие  имя  канала,  должны  иметь 
следующий синтаксис: 
\\.\рiре\<имя канала> 
Первый символ обратной косой черты указывает на корневой узел иерархической 
структуры имен системных объектов. Еще три обратные косые разделяют имена после-
дующих  узлов.  Точка (.) обозначает  локальный  компьютер.  Хотя  каналы могут  соеди-
няться с клиентами других сетевых серверов, новый объект-канал всегда появляется на 
том локальном сервере, где он был создан. 
После имени сервера указывается узел, который называется pipe. Здесь содержатся 
имена  всех  каналов,  расположенных  на  локальном  компьютере.  В  строке  имени  про-
граммно задается только один фрагмент, а именно <имя канала>. Эта подстрока должна 
содержать не более 256 символов. Регистр при наборе символов не имеет значения, по-
скольку имена объектов не чувствительны к нему. И серверы, и клиенты для представ-
ления  локального  компьютера  используют  точку (.), однако  клиент,  который  хочет  от-
крыть канал  на удаленном сервере,  должен знать  имя этого сервера.  Один из способов 
определения имени удаленного сервера. Заключается в получении списка имен с помо-
щью  функций WNetOpenEnum(), WNetEnumResource() и WNetCloseEnum(), однако  де-
лается это очень медленно. 
Функции CreateNamedPipe(), CreateFile(), WaitNamedPipe() и CallNamedPipe() тре-
буют, чтобы в качестве параметра было задано имя канала. 
Параметр fdwOpenMode, содержит комбинацию  флагов, которые задают некото-
рые  атрибуты  канала.  Наиболее  важным  атрибутом  является  режим  доступа,  опреде-
ляющий  направление  передачи  информации  в  канале.  Параметр fdwOpenMode должен 
содержать один из трех возможных флагов доступа. 
PIPE_ACCESS_OUTBOUND - Сервер  только  записывает,  а  клиент  только  читает  ин-
формацию. 
PIPE_ACCESS_INBOUND - Сервер только читает, а  клиент только записывает  инфор-
мацию. 
PIPE_ACCESS_DUPLEX - Сервер и клиент могут как записывать, так и читать инфор-
мацию. 
Еще два флага этого параметра являются необязательными. 
FILE_FLAG_WRITE_THROUGH - Запрещает буферизацию в сети. 
FILE_FLAG_OVERLAPРЕD - Разрешает асинхронные операции чтения и записи. 
С  целью  повышения  эффективности работы  канала  при  соединении  с  удаленным 
компьютером система старается не сразу же отсылать каждое сообщение. Она, наоборот, 
пытается накопить несколько коротких сообщений в буфере и передать их по каналу за 
одну  операцию.  Если  проходит  определенное  время,  а  буфер  остается  заполненным 
лишь  частично,  система  все  же  передает  его  содержимое.  Флаг 
FILE_FLAG_WRITE_THROUGH  запрещает  системе  производить  буферизацию  каждое 
сообщение будет отправляться немедленно, а команды записи не завершатся до тех пор, 
пока не будут переданы их выходные значения. Буферизацию целесообразно отключать 
в том случае, если вы собираетесь посылать сообщения лишь изредка. 
Операции записи и чтения обычно выполняются медленно, поскольку работа осу-
ществляется  с  физическими  устройствами.  Второй  необязательный  флаг, 
FILE_FLAG_OVERLAPPED,
  позволяет  командам  чтения  и  записи  завершаться,  в  то 
время как инициированные ими действия будут продолжаться в фоновом режиме (асин-
хронный ввод-вывод, рассмотренный ранее). 
Параметр  fdwPipeMode  содержит  еще  одну  комбинацию  флагов,  позволяющую 
задать  другой  набор  характеристик  канала:  флаг  режима  чтения,  флаг  режима  ввода  и 
178
структуру имен системных объектов. Строки, содержащие имя канала, должны иметь
следующий синтаксис:
\\.\рiре\<имя канала>
     Первый символ обратной косой черты указывает на корневой узел иерархической
структуры имен системных объектов. Еще три обратные косые разделяют имена после-
дующих узлов. Точка (.) обозначает локальный компьютер. Хотя каналы могут соеди-
няться с клиентами других сетевых серверов, новый объект-канал всегда появляется на
том локальном сервере, где он был создан.
     После имени сервера указывается узел, который называется pipe. Здесь содержатся
имена всех каналов, расположенных на локальном компьютере. В строке имени про-
граммно задается только один фрагмент, а именно <имя канала>. Эта подстрока должна
содержать не более 256 символов. Регистр при наборе символов не имеет значения, по-
скольку имена объектов не чувствительны к нему. И серверы, и клиенты для представ-
ления локального компьютера используют точку (.), однако клиент, который хочет от-
крыть канал на удаленном сервере, должен знать имя этого сервера. Один из способов
определения имени удаленного сервера. Заключается в получении списка имен с помо-
щью функций WNetOpenEnum(), WNetEnumResource() и WNetCloseEnum(), однако де-
лается это очень медленно.
     Функции CreateNamedPipe(), CreateFile(), WaitNamedPipe() и CallNamedPipe() тре-
буют, чтобы в качестве параметра было задано имя канала.
     Параметр fdwOpenMode, содержит комбинацию флагов, которые задают некото-
рые атрибуты канала. Наиболее важным атрибутом является режим доступа, опреде-
ляющий направление передачи информации в канале. Параметр fdwOpenMode должен
содержать один из трех возможных флагов доступа.
PIPE_ACCESS_OUTBOUND - Сервер только записывает, а клиент только читает ин-
формацию.
PIPE_ACCESS_INBOUND - Сервер только читает, а клиент только записывает инфор-
мацию.
PIPE_ACCESS_DUPLEX - Сервер и клиент могут как записывать, так и читать инфор-
мацию.
Еще два флага этого параметра являются необязательными.
FILE_FLAG_WRITE_THROUGH - Запрещает буферизацию в сети.
FILE_FLAG_OVERLAPРЕD - Разрешает асинхронные операции чтения и записи.
     С целью повышения эффективности работы канала при соединении с удаленным
компьютером система старается не сразу же отсылать каждое сообщение. Она, наоборот,
пытается накопить несколько коротких сообщений в буфере и передать их по каналу за
одну операцию. Если проходит определенное время, а буфер остается заполненным
лишь     частично,     система    все   же    передает   его    содержимое.    Флаг
FILE_FLAG_WRITE_THROUGH запрещает системе производить буферизацию каждое
сообщение будет отправляться немедленно, а команды записи не завершатся до тех пор,
пока не будут переданы их выходные значения. Буферизацию целесообразно отключать
в том случае, если вы собираетесь посылать сообщения лишь изредка.
     Операции записи и чтения обычно выполняются медленно, поскольку работа осу-
ществляется с физическими устройствами. Второй необязательный флаг,
FILE_FLAG_OVERLAPPED, позволяет командам чтения и записи завершаться, в то
время как инициированные ими действия будут продолжаться в фоновом режиме (асин-
хронный ввод-вывод, рассмотренный ранее).
     Параметр fdwPipeMode содержит еще одну комбинацию флагов, позволяющую
задать другой набор характеристик канала: флаг режима чтения, флаг режима ввода и
                                        178
Страницы
- « первая
- ‹ предыдущая
- …
- 174
- 175
- 176
- 177
- 178
- …
- следующая ›
- последняя »
