“命名管道”又名“命名管线”(Named Pipes),是一种简单的
进程间通信
(IPC)机制,Microsoft Windows大都提供了对它的支持(但不包括Windows CE)。命名管道可在同一台计算机的不同进程之间或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的
数据通信
。推荐用命名管道作为进程通信方案的一项重要的原因是它们充分利用了Windows内建的安全特性(
ACL
等)。
用命名管道来设计跨计算机应用程序实际非常简单,并不需要事先深入掌握底层网络传送协议(如TCP、UDP、IP、IPX)的知识。这是由于命名管道利用了微软网络提供者(MSNP)
重定向器
通过同一个网络在各进程间建立
通信
,这样一来,应用程序便不必关心网络协议的细节。
假定有一台服务器保存着公司的秘密,我们要求只有公司的管理人员才能访问或编辑这些秘密(高权限信息)。而在自己的工作网络,公司内的每名员工都可看到网络上的这台计算机(低权限访问)。然而,我们并不希望普通员工(低权限组)取得对机密材料的访问权。公司要求我们开发一个数据管理系统,此系统只允许一个指定的用户组(高权限组)进行
操作
。
在这种情况下,命名管道等包含
ACL
的
数据通信系统
可发挥作用。因为我们可利用ACL,使只有拥有特别权限的用户(高权限组)与指定服务器发送控制
信息
,以此对公司的秘密进行操作。在此要记住的一个重点是:将命名管道作为一种
网络编程
方案使用时,它实际上建立一个简单的客户机/服务器
数据通信
体系(通常是TCP/IP,TCP协议具有良好的稳定性与数据安全性)。
要学习开发一组命名管道应用(可能是一个进程的不同
线程
、同一个可执行性文件的不同实例或完全不同的程序),首先要了解命名管道的命名规范(命名协议),然后了解基本的管道类型,接着实现一组简单的服务器应用与一个客户端应用。然后再以它为基础,深入研究高级的服务器编程技术,了解更复杂的通信系统与简单的通信协议。