• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

协议设计收到的数据的长度是不确定

莱克迷KW 2020-06-06 浏览量:601
有一个协议,收到的数据的长度是不确定的,这样怎么设计呢
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以在协议前设置帧长度的定义字段,先读取前帧头确定了帧长度后,通过动态分配内存的方式,分配之后的数据的缓存来存储通讯中的数据。每一次都进行这样的操作
    • 发布于 2020-06-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 设计一个包含长度不确定的报文的帧,定义好帧头开始符和帧结束符,帧结构,通信双方根据接收到的帧头和帧尾来判定是不是完整的帧,并解析出帧的内容(实践所需的数据)。
    • 发布于2020-06-07
    • 举报
    • 评论 0
    • 1
    • 0

  • 还有一个思路是接收数据间隔,收到一帧数据间隔一段时间再发送(如modbus)
    • 发布于2020-06-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 有两种办法,一种用超时检测机制类似modbus协议,每帧结束后停顿几ms或者到几十ms

    还有一种就是通过特殊字符来判断一帧结束,比如回车换行,但是数据中就不能包含这两种特殊字符,一般传输ascii用这种办法

    • 发布于2020-06-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 我写的文章,你可以参考下:

    基于单片机串口数据帧解析的一种方法

    https://www.icxbk.com/article/detail?aid=866

    • 发布于2020-06-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个有很多种实现的方法

    比如,帧头有具体数据长度,每个数据包有序号和特殊的标头(表示属于同一数据帧)。

    • 发布于2020-06-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以把协议分成两部分,一部分传输当前帧长度,之后,再传输实际的数据
    • 发布于2020-06-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种一般第一个字节是个固定的字符,然后后面几个字节跟着长度,最后有个校验符,有个停止符,然后解析通过起始符和停止符解出整条报文,检验长度并进行校验计算
    • 发布于2020-06-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

协议设计收到的数据的长度是不确定