java - Windows 操作系统环境下 C++ 应用程序与 Java 应用程序之间的进程间通信

标签 java c++ windows ipc

我们在 Windows 上有一个启动 java 进程的 C++ 应用程序。这两个应用程序需要相互通信(通过 xml 片段)。

您会选择哪种进程间通信方法,为什么?

摆在我们面前的方法是:共享文件、管道和套接字(尽管我认为这有一些安全问题)。我对其他方法持开放态度。

最佳答案

我不确定您为什么认为基于套接字的通信会有安全问题(使用 SSL)。这通常是一种非常好的方法,因为它语言不可知,假设您有一个定义明确的通信协议(protocol)。看看 Google 的 protocol buffers ,例如 - 它们生成所需的 Java 类和流。

根据我的经验,文件系统(尤其是网络文件系统)不太适合此类通信,因为它们不一定针对消息传递进行调整(我已经看到缓存问题导致文件未被选择例如,由目标进程启动)。

另一种选择是消息传递层(例如 AMQ 或 Tibco),尽管这可能会涉及更多的管理开销(加上专业知识)来设置。

我个人会选择纯套接字方法,因为它具有灵 active 和简单性。您将完全掌控

关于java - Windows 操作系统环境下 C++ 应用程序与 Java 应用程序之间的进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209406/

相关文章:

java - 错误: "UnsatisfedLinkError: com.aparapi.internal.jni.OPENCLJNI.getPlatforms()" JNI configuration

java - 从 Android 程序中的 xml 资源中获取整数数组

java - 检查文件长度后在 Android 中进行位图采样

C++/seek - 哪种文件查找顺序更快?

c++ - 适用于 Windows 的 Helgrind?

java - 方法应将 char 转换为整数但不起作用 (Java)

c++ - 生成文件 : Change working directory for make check

c++ - 为什么对某些 Windows CE 目标的编译在 Visual Studio 2008 中得到 "skipped"?

c++ - 线程安全和 AfxMessageBox

windows - Windows Embedded Compact 7(以前称为 CE)上的 HTTP 1.0 通信速度较慢