Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C+之间的进程间通信+;Windows操作系统环境中的应用程序和Java应用程序 我们在Windows上有一个C++应用程序,它启动java进程。这两个应用程序需要相互通信(通过xml片段)_Java_C++_Windows_Ipc - Fatal编程技术网

C+之间的进程间通信+;Windows操作系统环境中的应用程序和Java应用程序 我们在Windows上有一个C++应用程序,它启动java进程。这两个应用程序需要相互通信(通过xml片段)

C+之间的进程间通信+;Windows操作系统环境中的应用程序和Java应用程序 我们在Windows上有一个C++应用程序,它启动java进程。这两个应用程序需要相互通信(通过xml片段),java,c++,windows,ipc,Java,C++,Windows,Ipc,您会选择什么进程间通信方法,为什么 我们可以使用的方法有:共享文件、管道和套接字(尽管我认为这有一些安全问题)。我对其他方法持开放态度。我不确定您为什么认为基于套接字的通信会有安全问题(使用SSL)。这通常是一种非常好的方法,因为它与语言无关,假设您有一个定义良好的通信协议。例如,看看谷歌的——它们生成所需的Java类和流 根据我的经验,文件系统(尤其是网络文件系统)不太适合这种通信,因为它们不一定针对消息传递进行调整(例如,我看到缓存问题导致目标进程无法拾取文件) 另一个选项是消息层(例如Ti

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


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

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

根据我的经验,文件系统(尤其是网络文件系统)不太适合这种通信,因为它们不一定针对消息传递进行调整(例如,我看到缓存问题导致目标进程无法拾取文件)

另一个选项是消息层(例如Tibco),尽管这可能需要设置更大的管理开销(加上专业知识)


就个人而言,我会选择纯套接字方法,因为它具有灵活性和简单性。您将处于完全控制状态

> P> >我在C++和跨平台的C++应用程序中使用了命名管道,但效果很好。禁止使用插座绝对是一个好办法。

插座很好。它们使您能够非常轻松地围绕每个组件创建一个黑盒测试层,并在自己的机器上运行每个组件

安全无疑是一个问题,但根据其重要性,有很多选择。您可以使用SSL、自定义握手、受密码保护的登录和防火墙来帮助保护它

编辑: 这不是我推荐的,但也有使用JNI的共享内存。我只是想提一下,因为它不在你的名单上