在 Java 应用程序和基于 C# 的插件之间建立 IPC 链接

Posted

技术标签:

【中文标题】在 Java 应用程序和基于 C# 的插件之间建立 IPC 链接【英文标题】:Establishing IPC link between a Java app and C#-based plugins 【发布时间】:2009-09-21 18:47:10 【问题描述】:

我们有一个 Java 应用程序,以及一些可与主应用程序通信的其他应用程序(例如 Excel)的基于 C# 的插件。通信层使用 Java 端的 Apache MINA 和 .NET 插件的 xsd 实现。通常情况下,事情在同一台 (Windows) 机器上运行,但最好不要假设(例如,允许主应用程序在 Mac 上运行并能够与不同机器上的 Excel 通信)。

无论是主应用程序还是插件先启动,通信都必须正常工作。我的问题是如何最好地建立链接?目前,我们的主要 Java 应用程序侦听插件不断轮询可用性的端口。这显然是浪费和不雅的。但它有效。

另一种方法是让每个插件监听自己的端口,当应用程序启动时,它会向每个已知端口(在本地主机上)发送“Hello”类型的消息,然后让插件在那一点。

我也看过一些多播,但对它了解不多。当然,同一子网中可能有多个用户都在使用该应用程序。

还有其他想法或想法吗?

【问题讨论】:

这显然是一个服务器/客户端服务模型。您应该将问题改写为“将 C# 客户端与 Java 网络服务提供商一起使用”。 【参考方案1】:

您不应该担心连接到服务器的浪费尝试 - 这不是资源密集型操作,插件需要连接才能工作。似乎没有任何真正的动机来使用与您已经在使用的传统客户端/服务器方法不同的任何东西。

【讨论】:

以上是关于在 Java 应用程序和基于 C# 的插件之间建立 IPC 链接的主要内容,如果未能解决你的问题,请参考以下文章

C#中两个插件之间的通信

在没有 Java EE 应用服务器的情况下使用 Web 服务在 C# 和 Java 之间进行互操作?

插件之间的 Qt 管道数据

C# 插件架构与插件之间的接口共享

如何在 .NET 和 Java 之间创建跨平台进程间通信?

如何在 HSQLDB 和 C# .net 之间建立连接?