我在一个程序上工作,该程序将信息从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从一台雷达计算机向另一台计算机发送消息。
发布于 2016-01-27 05:43:02
好的,我把它当做C或C++来处理。我的语法没有错,但我把事情搞得比需要的要难得多。
最终,我想到了使用构建器模式将两个类的内容混合在一起的想法,这两个类都包含一个预定字节大小的对象数组(float(32位实数),long(64位整数),double(64位实数),int(32位整数),short(16位整数))。我遵循了这个示例,并对其进行了扩展:

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