从外部向C++/Qt应用程序发送消息

Send message to C++/Qt application from outside?

本文关键字:消息 应用程序 Qt C++ 从外部      更新时间:2023-10-16

我有一个C++/Qt应用程序。我想用Java和它说话。我知道我可以创建TCP服务器/客户端。我还有哪些其他选择?

问题是我在应用程序内创建了TCP服务器,但它不起作用。但在独立模式下运行时工作正常。因此,寻找C++和Java之间的替代通信方式。

我有一个C++/Qt应用程序。我想用Java和它说话。我知道我 可以创建 TCP 服务器/客户端。我还有哪些其他选择?

基本上,您正在寻找的是两种语言都正确支持的IPC。您可以找到几种解决方案:

  • Java和C++套接字通信。显然,QtNetwork和其中的套接字类可能是您在Qt端的朋友。

  • http://www.velocityreviews.com/forums/t279534-communication-between-a-c-and-java-program.html

  • Java 本机接口。您将能够从 Java 调用 C/C++ 方法,反之亦然,尽管这可能是最慢的解决方案之一。

  • 共享内存(SHM((在这里,QSharedMemory可以在Qt方面为您提供帮助(。

  • 谷歌协议缓冲区

  • Dbus(在这里,QtDbus可以在Qt方面为您提供帮助(。但是,这不一定是跨平台的解决方案。

我个人建议在Qt API中使用基于原始套接字的低级解决方案。在我看来,这是最可靠的,也是背后经过充分验证的技术。Java端有Qt Jambi和Qt风格的API,当然在C++,你会得到QtNetwork API。这至少会在整个项目中为您提供一些一致性。