命名管道和mailslot(邮箱)有什么区别?

问题描述 投票:3回答:2

看来这2种IPC机制彼此很相似,它们之间有什么区别吗?

winapi ipc named-pipes
2个回答
9
投票

我想MSDN上对每种机制的介绍都能回答这个问题。

  1. Mailslots:

    邮件槽是一种单向进程间通信(IPC)的机制。应用程序可以将信息存储在一个邮件槽中。邮件槽的所有者可以检索储存在那里的信息。这些消息通常通过网络发送到指定的计算机或指定域中的所有计算机。

  2. 命名管道:

    命名管道是用于管道服务器与一个或多个管道客户机之间通信的命名、单向或双工管道。命名管道的所有实例共享相同的管道名称,但每个实例都有自己的缓冲区和句柄,并为客户服务器通信提供单独的管道。

所以。

  • 命名管道是以连接为导向的,而邮件槽不是。
  • mailslots可以用于广播,命名管道不能。

(小结:mailslots颇像UDP,但命名管道更接近TCP。计算机之间的mailslots有424字节的限制,甚至比普通网络上的UDP数据包更有限制)。)

虽然mailslots和命名管道都可以有ACL(限制不同的客户端用户可以做什么动作),但命名管道也允许委托客户端的身份,这样服务器就可以以该用户的身份行动(访问其他资源)(或者被阻止)。

(经过编辑,修正了安全方面的信息,并注意到邮件槽信息大小的限制。)


0
投票

邮件槽并不像命名管道那样有明确的基于ACL的权限。它不可能阻止特定的用户组访问邮件槽。来源windows安全书。

© www.soinside.com 2019 - 2024. All rights reserved.