进程间通信主讲人:孙鑫
http://www.sunxin.org
进程间通信的四种方式
剪贴板
匿名管道
命名管道
邮槽
http://www.sunxin.org
命名管道
命名管道是通过网络来完成进程间的通信,它屏蔽了底层的网络协议细节。我们在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。
命名管道充分利用了 Windows NT和 Windows 2000内建的安全机制。
将命名管道作为一种网络编程方案时,它实际上建立了一个客户机/服务器通信体系,并在其中可靠地传输数据。
命名管道是围绕 Windows文件系统设计的一种机制,采用
,命名管道文件系统 (Named Pipe File System,NPFS)”接口,
因此,客户机和服务器可利用标准的 Win32文件系统函数
(例如,ReadFile和 WriteFile)来进行数据的收发。
http://www.sunxin.org
命名管道
命名管道服务器和客户机的区别在于:服务器是唯一一个有权创建命名管道的进程,也只有它才能接受管道客户机的连接请求。而客户机只能同一个现成的命名管道服务器建立连接。
命名管道服务器只能在 Windows NT或 Windows 2000上创建,
所以,我们无法在两台 Windows 95或 Windows 98计算机之间利用管道进行通信。不过,客户机可以是 Windows 95或
Windows 98计算机,与 Windows NT或 Windows 2000计算机进行连接通信。
命名管道提供了两种基本通信模式:字节模式和消息模式。
在字节模式中,数据以一个连续的字节流的形式,在客户机和服务器之间流动。而在消息模式中,客户机和服务器则通过一系列不连续的数据单位,进行数据的收发,每次在管道上发出了一条消息后,它必须作为一条完整的消息读入。
http://www.sunxin.org
邮槽
邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。
邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入数据。
为保证邮槽在各种 Windows平台下都能够正常工作,我们传输消息的时候,应将消息的长度限制在 424字节以下。
http://www.sunxin.org