【发布时间】:2013-10-04 07:28:28
【问题描述】:
我有一个 C++/Qt 应用程序。我想用 Java 和它交谈。 我知道我可以创建 TCP 服务器/客户端。我还有哪些其他选择?
问题是我在应用程序中创建了 TCP 服务器,但它不起作用。但在独立模式下运行时工作正常。因此寻找 C++ 和 Java 之间的替代通信方式。
【问题讨论】:
我有一个 C++/Qt 应用程序。我想用 Java 和它交谈。 我知道我可以创建 TCP 服务器/客户端。我还有哪些其他选择?
问题是我在应用程序中创建了 TCP 服务器,但它不起作用。但在独立模式下运行时工作正常。因此寻找 C++ 和 Java 之间的替代通信方式。
【问题讨论】:
我有一个 C++/Qt 应用程序。我想用 Java 和它交谈。我知道我 可以创建 TCP 服务器/客户端。我还有什么其他选择?
基本上,您正在寻找的是两种语言都正确支持的 IPC。您可以找到几种解决方案:
Java and C++ socket communication.。显然,QtNetwork 和其中的套接字类可能是您在 Qt 方面的朋友。
http://www.velocityreviews.com/forums/t279534-communication-between-a-c-and-java-program.html
Java Native Interface。您可以从 Java 调用 C/C++ 方法,反之亦然,尽管这可能是最慢的解决方案之一。
Shared Memory (SHM)(这里,QSharedMemory 可以在 Qt 方面为您提供帮助)。
Dbus(在这里,QtDbus 可以在 Qt 方面为您提供帮助)。然而,这不一定是跨平台的解决方案。
我个人建议在 Qt API 中使用基于原始套接字的低级解决方案。这是我认为最可靠的,并且是经过充分验证的技术。有Qt Jambi,带有用于java 端的Qt 风格API,当然在C++ 中,你会得到QtNetwork API。这至少会在整个项目中为您提供一些一致性。
【讨论】: