В чем разница между именованным каналом и почтовым ящиком (почтовым ящиком)? - PullRequest
3 голосов
/ 25 августа 2011

Кажется, что эти 2 механизма IPC очень похожи между собой, есть ли разница между ними?

1 Ответ

9 голосов
/ 25 августа 2011

Я думаю, что введение в каждый механизм на MSDN отвечает на это:

  1. * 1006 почтовые слоты *:

    Почтовый ящик - это механизм односторонней межпроцессной связи (IPC). Приложения могут хранить сообщения в почтовом ящике. Владелец почтового ящика может получать сообщения, которые там хранятся. Эти сообщения обычно отправляются по сети либо на указанный компьютер, либо на все компьютеры в указанном домене.

  2. Именованные каналы :

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

Итак:

  • Именованные каналы ориентированы на соединение, почтовые ящики - нет.
  • Почтовые ящики могут использоваться для трансляции, именованные каналы не могут.

(Резюме: почтовые слоты похожи на UDP, но именованные каналы ближе к TCP. Ограничение в 424 байта почтовых ящиков между компьютерами еще более ограничено, чем пакеты UDP в обычных сетях.)

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

(отредактировано для исправления информации о безопасности и ограничения размера сообщения почтового ящика.)

...