mina框架如何解码复杂对象

BigBug博客 2020-06-16 05:47:39
如图,TCP协议给我的报文文档:

看文档的意思stDeviceStatus是一个类似List对象数组的数据。那么使用mina的IoBuffer如何解析这种数据呢?没有头绪,求路过大佬帮帮忙,先谢谢啦!
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
要不你就把文档发全一些,按你上面提到的内容,无法确认报文格式,无法组包。
引用 3 楼 聚繁大BUG 的回复:
[quote=引用 2 楼 失足成万古风流人物 的回复:] 这个看样子给的是api,直接调用方法,传合适的参数,不需要你解包组包。你说到的东西用不到。如果给的协议报文格式说明,那你才需要关心你说到的东西。
这就是报文格式说明,其他的简单报文对象我都解析了,但这个报文含复杂对象,我真的不知道咋解析[/quote]
tianfang 2020-06-17
  • 打赏
  • 举报
回复
不要按对象处理,因为C和java对象序列化的方法不一致,做两个方法,一个是对象-》byte数组,发送此数组,一个是byte数组-》对象,用于接收解码
BigBug博客 2020-06-17
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
首先 这个不是接口文档 tcp接口不能这样定义,歧义很多,比如int的长度,big endian or small endian mina多年不更新,主程去做netty了,换netty吧 。关于这个可以看看 https://blog.csdn.net/qq_33314107/article/details/81292589
这不是TCP接口协议,这是TCP接口协议报文格式说明,现在没法用netty,项目原先就用这个
BigBug博客 2020-06-17
  • 打赏
  • 举报
回复
引用 2 楼 失足成万古风流人物 的回复:
这个看样子给的是api,直接调用方法,传合适的参数,不需要你解包组包。你说到的东西用不到。如果给的协议报文格式说明,那你才需要关心你说到的东西。
这就是报文格式说明,其他的简单报文对象我都解析了,但这个报文含复杂对象,我真的不知道咋解析
浪费七年时间 2020-06-17
  • 打赏
  • 举报
回复
不清楚它是怎么序列化的,可能就是按顺序填充字节? 比如前8个字节为ucZNBoxID(设备ID),接下来4个字节是设备个数,再接下来4*(1+1+32+1+4+4+4)是设备列表? 至于大小端以及C语言32位和64位某些基本类型比如long字节长度不同的情况另说。。。
  • 打赏
  • 举报
回复
这个看样子给的是api,直接调用方法,传合适的参数,不需要你解包组包。你说到的东西用不到。如果给的协议报文格式说明,那你才需要关心你说到的东西。
tianfang 2020-06-16
  • 打赏
  • 举报
回复
首先 这个不是接口文档 tcp接口不能这样定义,歧义很多,比如int的长度,big endian or small endian mina多年不更新,主程去做netty了,换netty吧 。关于这个可以看看 https://blog.csdn.net/qq_33314107/article/details/81292589

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧