c++客户端与Java服务器之间的通信

Commucation Between C++ Client and Java Server

本文关键字:之间 通信 服务器 Java 客户端 c++      更新时间:2023-10-16

我正在开发一个客户端应用程序,它使用HTTP与服务器通信。客户端是用c++编写的,服务器组件是用J2EE编写的。我能够成功地在客户端和服务器之间交换数据。现在我想将信息片段封装在客户端的c++对象中,并通过HTTP请求发送给服务器。我的服务器在接收到数据后应该将c++对象反序列化为java对象。

我的问题是,我想知道我们是否可以以上述方式交换对象,如果可以实现,是否有人可以通过提供在线教程或代码示例的参考来帮助我?

如果您将普通的旧c++对象发送给服务器,那将是一场噩梦。您需要在客户机和服务器之间使用公共协议。JSON是一个很好的选择。流程应该是这样的:

c++ object ->序列化为-> JSON ->反序列化为-> Java object

使用JSON Spirit之类的东西将c++对象序列化为JSON。要将JSON反序列化为Java对象,Gson是一个安全的选择(它甚至可以实时进行转换)。您可以在各自的主页上找到这两个项目的文档

您需要将对象序列化为XML, JSON或类似的东西。

你不能使用特定技术的序列化(例如java的RMI),因为你在跨堆栈工作(无论如何这是不好的实践)。

不了解c++,但在java中使用JAXB将对象绑定到XML/JSON是微不足道的。如果你要公开一个web服务,你可以采用简单的方法:REST(使用JAX-RS),或者稍微难一点但技术上更好的方法(因为它有更多的特性):SOAP(使用JAX-WS)。

如果你阅读了相关的web服务堆栈,那么在Java EE中暴露这样的web服务是微不足道的。