Поделиться через


Именованные каналы

Именованный канал — это именованный односторонний или дуплексный канал для обмена данными между сервером канала и одним или несколькими клиентами канала. Все экземпляры именованного канала имеют одно и то же имя канала, но каждый экземпляр имеет собственные буферы и дескрипторы и предоставляет отдельный канал для обмена данными между клиентом и сервером. Использование экземпляров позволяет нескольким клиентам канала одновременно использовать один и тот же именованный канал.

Любой процесс может получить доступ к именованным каналам при проверке безопасности, что делает именованные каналы легкой формой взаимодействия между связанными или несвязанными процессами.

Любой процесс может выступать как сервер, так и клиент, что делает возможным одноранговый обмен данными. Как используется здесь, термин сервер канала относится к процессу, который создает именованный канал, а термин "клиент канала" относится к процессу, который подключается к экземпляру именованного канала. Серверная функция для создания экземпляра именованного канала — CreateNamedPipe. Серверная функция для принятия подключения — ConnectNamedPipe. Клиентский процесс подключается к именованной трубе с помощью функции CreateFile или CallNamedPipe .

Именованные каналы можно использовать для обеспечения взаимодействия между процессами на одном компьютере или между процессами на разных компьютерах по сети. Если служба сервера запущена, все именованные каналы доступны удаленно. Если вы планируете использовать именованный канал только локально, запретите доступ к NT AUTHORITY\NETWORK или переключитесь на локальный RPC.

Дополнительные сведения см. в следующих разделах: