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


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

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

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

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

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

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