为了账号安全,请及时绑定邮箱和手机立即绑定

我主要是想询问下有没有一种直接能够read/Write Object的解决方案,如果有,是怎样的?

我主要是想询问下有没有一种直接能够read/Write Object的解决方案,如果有,是怎样的?

鸿蒙传说 2023-04-03 17:13:42
c++ 结构体struct Info {      int id;    char name[20]; };java Bean类class Info {    private int id;    private String name;    //Getter Setter}一个简单的想法就是java 客户端 读取发送过来的字节数据 然后针对性的做大小字节变化,并取出多少字节复制给id或name
查看完整描述

2 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

纯粹struct的话,两边统一下字节对齐和字节序,使用二进制协议也可以.
你可以把要传输的这段内容看成是一个很长的字符串。

当然,java在解释二进制的结构体的时候,你是不能直接像c/c++一样, (struct xxx*)buff就完成转换,可能需要你深刻理解c++的内存layout,这相对复杂了。

实际上,通用的做法是实用一个第三方的标准编码,和语言无关的,比如google开源的 protocbuffer,以及平常我们用的json,xml都是可以的。


查看完整回答
反对 回复 2023-04-07
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

这个玩意貌似叫protoBuffer,比较好的办法是,你得有一个第三方的描述性文件,描述这个结构,比如

<info type="info">
    <id  type="int32" />
    <name type="string" />
</info>

通信的两端必须得理解这个结构的,然后在传输的时候,序列化一下,在按照一定的规则读一下就OK。


查看完整回答
反对 回复 2023-04-07
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信