IPC使用Linux管道

时间:2014-05-12 19:28:42

标签: linux pipe

我对使用Linux Pipes for IPC存有疑问。我的问题是

Linux管道可以用于在不同机器上运行的进程之间进行通信吗?

谢谢,

2 个答案:

答案 0 :(得分:3)

不,您不能仅使用pipe在不同的计算机之间进行通信,因为管道被定义为本地计算机通信方法(IEEE standard表示它在当前进程中创建了两个文件描述符。描述符通常无法发送到其他计算机,只能从父项或passed via local machine sockets继承。

但是您可以尝试将管道用于某些外部套接字程序,例如netcat,它将通过tcp套接字重新发送所有数据,而远程netcat会将其重播回程序。

如果您正在开发一些应用程序,最好直接使用tcp socket

PS:IPC - 进程间通信 - AFAIK意味着一台(同一台)机器上的不同进程之间的通信(来自Linux程序员指南1995的linux IPC)。

PPS:如果套接字很难直接使用它们,您可以选择一些消息传递库或标准。例如,MPI标准(OpenMPI,MPICH库)通常用于在紧密耦合的computing clusters中的许多机器之间进行通信,并且有一些流行的接口,如RPC(Remote procedure call,几个实现)或{{3 }}

答案 1 :(得分:0)

管道仅用于同一主机上相关进程之间的通信(例如父进程和子进程)。