使用JAVA和C++通过Socket发送struct

loo*_*ktt 5 c++ java sockets byte

我有一个套接字,其中服务器在JAVA中,但客户端在C++中.

Struct{ 
   float length; 
   char[] name; 
}myStruct;
Run Code Online (Sandbox Code Playgroud)

如何将结构转换为Server发送的字节流,并且可以由客户端正确解析?任何示例代码都会有帮助!(我听说XML是一个选项,但我不熟悉它)谢谢.

jma*_*g2k 9

尝试使用谷歌协议缓冲区,托管在Google Code 的ProtocolBuffers页面上.小巧,高效,python,Java和C++支持.听起来很适合你的需求.

比XML方法更少的开销,并且比滚动自己更好 - 这比你想象的要难.


joj*_*ojo 2

XML 不能发挥作用,
您可以使用 XML 或纯文本
来完成您应该对文件进行的操作。
你可以使用jave将数据写入文件
,然后你可以使用c++读取该文件。

好吧,套接字
XML 并不特殊。纯文本可以完成工作
XML 仅添加结构

我不建议自己为繁重的任务实现序列化

您可能会考虑使用 JNI/JNA 更好的方法是使用 corba 但这可能有点矫枉过正