我有一个C ++ / Qt应用程序。我想用Java谈谈它。 我知道我可以创建TCP服务器/客户端。我还有其他选择吗?
问题是我在应用程序中创建了TCP服务器,但它不起作用。但在独立模式下运行时工作正常。因此,寻找C ++和Java之间的替代通信方式。
答案 0 :(得分:3)
我有一个C ++ / Qt应用程序。我想用Java谈谈它。我知道我 可以创建TCP服务器/客户端。我还有其他选择吗?
基本上,您正在寻找的是两种语言都能正确支持的IPC。你可以找到几种解决方案:
Java and C++ socket communication.。显然,在Qt方面,QtNetwork和那里的套接字类可能是你的朋友。
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中使用基于原始套接字的低级解决方案。在我看来,这是最可靠的,并且背后是经过充分验证的技术。 Java端有Qt Jambi Qt样式API,当然在C ++中,你会得到QtNetwork API。这至少可以为您提供整个项目的一致性。