具有多个侦听器的简单进程间通信
Posted
技术标签:
【中文标题】具有多个侦听器的简单进程间通信【英文标题】:Simple Interprocess-Communication with multiple listeners 【发布时间】:2014-08-21 14:44:11 【问题描述】:在一个项目中,我有一个控制多个子应用程序的主应用程序 (C#)。
这些子应用程序将使用 C#、Java、C++ 和 python 编写。 而且,更难的是,同一个子应用程序可以有多个实例。
这可以解释为:
现在我想到了NamedPipes
,但这不适用于多个实例,因为它们都会监听同一个管道(目前我无法告诉子进程使用哪个管道名)。
是否有一种简单且轻量级的单向通信方式,不依赖于平台(或至少在上述语言中可用)?
【问题讨论】:
如果主应用程序启动子应用程序,它可以将消息作为标准字符串传递给他们吗? 你应该更新你原来的问题,而不是问一个非常相似的新问题 - ***.com/questions/25427692/namedpipe-multiple-servers 最初的问题是关于命名管道的,这似乎无法解决。所以我问了这个更笼统的问题。 是的,它们是由主应用程序启动的。字符串会好的。必须看看。 【参考方案1】:通常的客户端/服务器方法怎么样? 您可以根据自己的要求自行选择(或实施)协议。
【讨论】:
每个子应用程序都是一个服务器,从主应用程序的角度来看,通信有点“重量级”。 我宁愿认为每个孩子都将成为客户端,因为子应用程序更容易连接到主/服务器应用程序。那么什么是服务器和什么是客户端并不重要,因为 IO 通道是双向的。一台设计精良的服务器能够为数百个客户提供服务......【参考方案2】:您可以使用套接字,它几乎与语言无关,如果您决定将进程转移到另一台机器上,它甚至可以很好地工作。
你也可以看看ZeroMQ
【讨论】:
以上是关于具有多个侦听器的简单进程间通信的主要内容,如果未能解决你的问题,请参考以下文章