Windows管道(Pipes)(一)

      Windows操作系统提供了多种机制用于实现应用程序间的通信及数据的共享,比如剪贴板(Clipboard)、组件对象模型(COM)、数据复制(Data Copy)、动态数据交换(DDE)、文件映射(File Mapping)、邮件槽(Mailslots)、管道(Pipes)、远程过程调用(RPC)、Windows套接字(Windows Sockets)等,这些技术统称为进程间通信(IPC, Interprocess communication)技术。        现在我用两篇文章就其中的管道做一下简单介绍。管道,顾名思义,就是供信息流动的通道。它有两个端点,一个用于信息的写入,即写入端,另一个用于信息的读出,即读出端。根据管道内信息的流向,管道可被设定为单向(One-way)或双向(Two-way, 或 duplex)。单向管道允许位于写入端的进程写入信息,位于读出端的进程读出信息;双向管道允许每端的进程既可以写入信息,又可以读出信息。

        管道本质上是一段共享内存,供进程用作彼此互相通信的渠道。创建管道的进程被称作管道服务端(Pipe server),连接到现有管道的进程被称作管道客户端(Pipe client)。

        Windows环境的管道有两种,一种是匿名管道(Anonymous Pipes),即不需为其指定名称,另一种叫命名管道(Named pipes),在创建时需要遵循指定的规则为其指定名称。前者比后者占用系统资源少,但功能没有后者强大。

       本文只介绍匿名管道,命名管道在下一篇介绍。匿名管道(Anonymous pipes)匿名管道不需在创建时为其命名,不支持跨网络的通信,且只支持单向通信。若要用匿名管道实现进程间的双向通信,则要为每个方向单独创建一条匿名管道。

        要创建一个匿名管道需要调用CreatePipe()函数,它返回两个句柄(handle),读、写各一个。读句柄只能对管道进行读操作,写句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值