在Java和C++;? 我想在一个JVM应用程序(一个进程,可能多个线程)和一个与C++ DLL链接的本地C++应用程序之间实现一个强大的IPC解决方案。dll可能在同一台物理计算机上,也可能不在同一台物理计算机上。这样做的最佳方法是什么
如有任何建议,将不胜感激!谢谢 我会使用一个标准的TCP/IP套接字,应用程序监听某个端口,库连接到它,报告它必须报告的内容,并期望得到答案 抽象功能强大,支持良好,不会出现互操作问题。您考虑过吗 Thrift是一个用于可伸缩跨语言服务开发的软件框架。它将软件栈与代码生成引擎结合起来,构建了在C++、java、python、php、Ruby、erlang、perl、Haskell、Cype、CoaA、SimalTalk和OcAML之间有效和无缝地工作的服务。 Thrift允许您在一个简单的定义文件中定义数据类型和服务接口。将该文件作为输入,编译器生成代码,用于轻松构建跨编程语言无缝通信的RPC客户端和服务器 它可以在TCP套接字上工作,并且序列化/反序列化已经内置在Java和C++;? 我想在一个JVM应用程序(一个进程,可能多个线程)和一个与C++ DLL链接的本地C++应用程序之间实现一个强大的IPC解决方案。dll可能在同一台物理计算机上,也可能不在同一台物理计算机上。这样做的最佳方法是什么,java,c++,ipc,Java,C++,Ipc,如有任何建议,将不胜感激!谢谢 我会使用一个标准的TCP/IP套接字,应用程序监听某个端口,库连接到它,报告它必须报告的内容,并期望得到答案 抽象功能强大,支持良好,不会出现互操作问题。您考虑过吗 Thrift是一个用于可伸缩跨语言服务开发的软件框架。它将软件栈与代码生成引擎结合起来,构建了在C++、java、python、php、Ruby、erlang、perl、Haskell、Cype、CoaA、SimalTalk和OcAML之间有效和无缝地工作的服务。 Thrift允许您在一个简单的定义文
有关详细信息,请阅读。mmm-DLL不是进程,因此我假设您指的是Java应用程序与链接到DLL的其他本机应用程序之间的IPC。当然,插座是解决这个问题的方法。这会让你一切都变得容易
另一种选择是使用JNI与DCOM实现对话,但我认为您不会获得太多好处(除了必须处理COM和JNI:-)的麻烦。可以帮助您以语言和平台无关的方式序列化数据。它还将在爪哇和C++中生成代码来处理串行数据的读写。然后,您可以使用希望发送数据的任何通信机制。例如,您可以通过TCP套接字或共享内存IPC发送。 < P>我正在查看,对于我的纯C++应用程序。这些规格看起来很漂亮,很有前途。我要试试。节俭很好,但我看到他们文档中的第一句话说它在Windows上不起作用……我的解释正确吗@贾斯汀:是的,它不是用Visual Studio编译的。旧线程,但thrift现在附带了Visual Studio(2010)项目