您的位置:首页 > 其它

利用管道(Pipe)实现IPC通讯

2013-10-12 15:58 330 查看
利用管道实现IPC通讯

Intel Process Communication Using Pipes

管道(Pipe)是两点间通讯机制,常用于单机进程间通讯,是IPC通讯的一种方式。

管道的概念始于Linux(Unix)系统,可以直接在命令行执行相关命令并指定输出作为另一个命令的输入,这种使用方式被形象地成为“管道”,在Windows中也是相同的语法特性。

通常来说,管道(Pipe)是操作系统中的对象,类似于系统中的文件。应用程序可以打开管道,读写数据并关闭。管道和文件的区别是管道有两个端点,并且数据是保存在系统共享内存中,这也是管道的名称由来。事实上,管道和隧道一样,数据从管道的一端传输到另一端。跟现实世界中的管子不同的是,管道是双流向,系统中的管道是两个方向独立传输的。

我们可以把管道作为C/S架构,服务端进程建立管道,等待数据传入。客户端进程打开管道,数据通过管道在服务端进程和客户端进程之间双向传递。多个客户端进程可以打通同一管道,在服务端进程看来就是多个单独的双向通道,服务端进程数据可以通过管道传输到单独的客户端或广播到所有的客户端进程。

通过Windows API可以建立命名管道或匿名管道。命名管道可以通过管道名称共享,匿名管道通常用于本进程内通讯处理。

/* 试着翻译了一段....择其大概描述下 */

delphi 组件下载 IPCUsingPipe 支持XE3

包含:TPipeClient, TPipeServer, TPipeConsole 三个控件

注意:管道是一种异步通讯机制,不能保证传输数据的读写同步。在实际应用中应该建立某种通讯协议机制,保证读写数据的完整性,就像我们使用TCP/IP协议通讯那样。总的来说,管道(Pipe)类似于TFileStream,读取端不需要关注数据如何写入,只要知道如何读取指定格式的数据就可以了。

补充:Cromis IPC download: Version 1.6.0 (19.07.2013)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: