首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该使用字节数组来发送包含不同信息的特定格式的消息吗?

我应该使用字节数组来发送包含不同信息的特定格式的消息吗?
EN

Stack Overflow用户
提问于 2016-01-22 01:22:59
回答 1查看 194关注 0票数 0

我在一个程序上工作,该程序将信息从xml文件/字符串(但没有嵌套,几乎总是相同的顺序,除非出现问题)转换为要发送的消息,将不包含路由信息(因此不包含数据报),并将使用套接字。

消息将有不同种类的数据,包含32位无符号整数、32位实数、64位实数、64位无符号整数和16位无符号整数。消息的前16个字节用作报头(类似于数据报,但没有路由信息),并将包含消息类型和消息大小等信息。

该消息将包含至少10个观察值和参数的数据,以便在使用数据做出任何决策时使用。

我最初打算将消息作为数据报发送,直到我意识到消息没有任何路由信息。

由于这不是数据报,并且消息的最大大小为1888字节,不同的字节包含不同的信息,我是否应该使用字节数组在一条消息中存储和发送不同的数据段?

字节0到15 :包含消息类型(字节4-7)、消息大小(12-15)和其他内容的消息头,除了字节8到11(保留用于未使用)之外,所有32位无符号整数。

字节24到25 :块编号,无符号16位整数。

字节128-131 :相对于系统的原点数据,实数32

此外,为了进一步澄清,这是使用Java从一台雷达计算机向另一台计算机发送消息。

EN

回答 1

Stack Overflow用户

发布于 2016-01-27 05:43:02

好的,我把它当做C或C++来处理。我的语法没有错,但我把事情搞得比需要的要难得多。

最终,我想到了使用构建器模式将两个类的内容混合在一起的想法,这两个类都包含一个预定字节大小的对象数组(float(32位实数),long(64位整数),double(64位实数),int(32位整数),short(16位整数))。我遵循了这个示例,并对其进行了扩展:

在我的例子中,汉堡包和ColdDrink分别被PayloadData和HeaderData取代,还在上面添加了一些更小的模式。PayloadData反过来被不同类型的消息覆盖(报头结构和构造方法永远不会改变,因此不会被覆盖)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34930284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档