C ++客户端与Java Server之间的通信

时间:2014-03-20 05:57:05

标签: java c++ serialization deserialization

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

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

2 个答案:

答案 0 :(得分:1)

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

您不能使用特定于技术的序列化(例如Java的RMI),因为您正在使用跨堆栈(无论如何都是不好的做法)。

不了解c ++,但在Java中,使用JAXB将对象转换为XML / JSON是微不足道的。如果您正在公开Web服务,您可以采用简单的方法:REST(使用JAX-RS)或稍微更难但技术上更好的方式(因为它具有更多功能):SOAP(使用JAX-WS)。

如果您阅读相关的Web服务堆栈,那么在Java EE中公开这样的Web服务是微不足道的。

答案 1 :(得分:1)

如果将普通的旧C ++对象发送到服务器,那将是一场噩梦。您需要在客户端和服务器之间建立通用协议。一个很好的选择是JSON。流程将是这样的:

C ++对象 - >序列化为 - > JSON - >反序列化为 - > Java对象

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