数据包是否要加的数据长度?

RayChenSW 发布于 2016/03/02 12:00
阅读 137
收藏 0

本人在做一个可穿戴物的项目。服务器采用Socket完成端口接收可穿戴物上传的数据,目标是单服务器可以同时与5000个可穿戴物进行长连接通讯,其中在数据通讯协议那里与硬件工程师产生了分歧。由于数据包的长度是不确定的,我要求在数据之前要在包头加上数据长度,硬件工程师则认为不需要加数据长度。

我在服务器这边的通讯协议格式是这样子的:

总包长(4字节)+命令长(4字节)+命令字+数据

其中,命令长=命令字的长度,总包长=4+命令长+数据长度。


硬件工程师认为数据长度无法或很难获取(可能工作量较大),他的格式是:

命令长(4字节)+命令字+数据

由于命令字只有一两种格式,所以实际上命令长和命令字他可以用固定的字符串,而无须计算。


所以我想请教各位,硬件工程师的要求是否有道理?是否在大量长连接通讯时可以保持稳定?

若有高手采用硬件工程师的通讯格式,而能确保单服务器5000个连接稳定性,请与本人联系,QQ:29828829,重酬!

加载中
0
jack_l
jack_l
包长信息很大程度上是为了解决粘包拆包的问题而存在的,如果协议可以让程序比较容易的找到报文界限(比如特定的字节分界)是可以不需要报文长度的,但我还是想说,建议加上报文长度字段吧,严谨一些
0
费振龙
费振龙
建议增加长度,密钥等安全措施
0
银杏卡卡
银杏卡卡
不加包长也可以,但是必须要限定包头格式,不然根本无法做到粘包解码
返回顶部
顶部