c++客户端与Java服务器之间的通信
Commucation Between C++ Client and Java Server
我正在开发一个客户端应用程序,它使用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服务是微不足道的。
相关文章:
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- C++ 两台不同机器之间通过wifi进行套接字通信
- 线程之间的通信不起作用 - C++
- 通过USB在PC和Arduino之间进行串行通信
- 管理器类和对象类之间的通信
- 使用命名管道在 C# 和C++应用程序之间进行持续通信
- Python 3 套接字和 QTcpsocket (c++) 之间的通信失败
- 如何在嵌入式浏览器和Webside之间进行双向通信
- C++程序和未识别程序之间的双向通信
- 使用C++在同一系统上运行的 2 个服务之间进行通信
- C# 和C++应用程序之间的通信
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- 如何在 gtk+ c 中的回调之间进行通信
- Electron应用程序和Win32本机桌面应用程序之间的进程间通信
- 如何在线程之间进行通信和等效的waitforsingleobject()
- C++ 和 Simulink 之间通过 UDP 进行通信
- 在两个Windows QT5之间进行通信
- 覆盆子Pi(QT C )和Arduino(Arduino IDE)之间的通信
- UNIX中两个进程之间通信的最佳方式:一个运行ruby服务器,另一个运行C++客户端