"命名管道"又名"命名管线"(Named Pipes),是一种简单的进程间通信(IPC)机制,Microsoft 然Windows大都提供了对它的支持(但不包括Windows CE)。命名管道可在同一台计算机的不同进程之间或在跨越一个网络的不同计算机的不同进程之间,支持可靠的来自、单向或双向的数据通信。推荐用命名管道作为进程通信方案的一项重要的原因是它们充分利用了Windows内建的安全特性(ACL等)。
用命名管道来设计跨计算机应用程序实际非常简单,并不需要事先深入掌握底层网络传送协议(如TCP、UDP、IP、IPX)的知识。这是由于360百科命名管道利用了微软网络提供者(MSNP)重定向器通过同一个网络在各进程间云拉审说到议细角建立通信,这样一来,应用程序便不必关心网络协议的细节。
- 中文名 命名管道
- 外文名 Named Pipes
- 所属领域 程序
- 所属学科 IT
作用
这里有一个可采纳命令管道的例子.假定我们要开发一个数据管理系统,只允许一个指定的用户组进行操作.想像在自己来自的办公室中,有一部计算机,其中保存着公司的秘密.我们要求只有公司的管理人员,才能访问及处理这些360百科秘密.假定在自己的工作站机器上,公司内的每名员工都可看到网络上的这台计算机.然而,我们并不础才尽孩加绍足杨头买盾希望普通员工取得对机密材料的访问权.在得互间凯婷种队这种情况下,命名管道可发挥出很好的作用,因为我们可开发一个服务器应用程序,令其以来自客户机的请求为准,对公司的秘密进行安全操作.服务器可将客户访问限制在管理人员身上,用Windows NT曲夫席华手或新版Windows 2000自带的安全机制,便可非常轻松地做到这一点.在此要记住的一个重点是,将命名管道作为一种网络编程方案使用时,它实际上建立一个简单的客户机/服务器数据通信体系,可在其中可靠地传输数据.本章将介绍如何来反换养开发一个命名管道客户机及服务器应用.首婷书逐太先要解释的是命名管道的命名规范(约定),然后子同省宗介绍基本的管道类型.随后,将向大家展示如何实现一个简单的服务器应用.然后以它为基础,深入探讨高级的服务器编程技术.接下来,讲解如何开发一个简单的客户机应用.到本章末,
问题总结
序言
我们会对命名管道已知的所有问题及安呀约限制进行总结.
实例1
在一的染个程序中实现命名预黄管道的创建与使用
实例2
此示例代码意在体现出命名管道与普通管道的区非表现座良官别,命名管道是以一个普通文件的形式出现的,包括三个文件,创建命名管道、写管道、读管道
1. 创建命名管道
#include<sys/types.h>
#include<sys/stat.h>
#include<u略队岁吧落朝含某意赵密nistd.h>
起随伟音材气矿练#include<fcntl.h>
int main(v形支花聚小则侵oid){
char buf[80];
int fd;
unlink("zieckey_fifo");
m强吗为入上预资述院析路kfifo("zieckey_fifo",0777);}写命名管道代码
#include<sys/types.h>
#include<s父主神述去沙沉ys/stat.h>
#include<unistd.h>
#include<fcntl.h>
int main(void){
int fd;
c换绍便脚套守har s[]="Hello!\n";
fd=open("zieckey_fifo",O_WRONLY);
while(1){
write(fd,s,sizeof(s));
sleep(1);}
return0;
}
接象及分防员再群多激是 读命名管道代码
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<fcntl.h>
int main(void){
int fd;
char buf[8风巴练都松粮称早0];
fd = open("zieckey_fifo",O_RDONLY);
while(1){
read(fd,buf,sizeof(buf));
printf("%s\n",buf);
sleep(1); }
return0;
}