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