Составители:
структуру имен системных объектов. Строки, содержащие имя канала, должны иметь
следующий синтаксис:
\\.\р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
- …
- следующая ›
- последняя »