(无耻地抄袭自http://www.perlmonks.org/?node_id=180842)
管道既快速又可靠,因为它们是在运行两个通信进程的单个主机上的内存中实现的。套接字较慢且不太可靠,但更加灵活,因为它们允许不同主机上的进程之间进行通信。
Windows 有两种管道:匿名管道和命名管道。匿名管道(相当)接近于 Unix 管道——典型用法是父进程将它们设置为由子进程继承,通常连接到子进程的标准输入、输出和/或错误流。曾几何时,匿名管道的实现与命名管道完全不同,因此它们(例如)不支持重叠 I/O。从那以后,情况发生了变化,因此匿名管道基本上只是一个您不知道名称的命名管道,因此您无法按名称打开它,但它仍然具有命名管道的所有其他功能(例如前面提到的重叠 I/O 能力)。
Windows 命名管道更像是套接字。它们起源于 OS/2,它们最初是创建客户端/服务器应用程序的主要机制。它们最初是围绕 NetBIOS 构建的(即,使用 NetBIOS 进行寻址和传输)。它们与 Windows 身份验证等内容紧密集成,因此您可以(例如)让命名管道服务器模拟客户端,以限制服务器执行客户端直接登录时可以执行的操作。最近,MS 在摆脱对 NetBIOS 的依赖方面遇到了一些麻烦,但即使他们现在可以使用 IP 作为传输方式(以及用于寻址的 DNS,IIRC),但它们仍然主要用于 Windows 机器。在其他机器上的主要用途是模仿 Windows,例如通过运行 Samba。
| 归档时间: |
|
| 查看次数: |
10160 次 |
| 最近记录: |