通信协议:数据转义规则(可收发变长数据)

数据通信协议中,为了确保数据的完整性和安全性,采用了数据转义规则。当帧内容中出现帧头STX、帧尾ETX或转义符ESC时,会进行特定的转义处理,如将STX转为0x2D, 0x21,ETX转为0x2D, 0x0B,ESC转为0x2D, 0x0D。接收端则根据规则还原数据,避免数据丢失。这种机制确保了通信过程中不定长数据帧的正确传输。

一、为什么通信协议中需要加数据转义呢?

可以使得通信的内容更加安全可靠,可以收发不定长的数据帧。

二、数据转义规则简介

假设:
一个通信协议,最基本的就是帧头(STX)和帧尾(ETX)。
当通信的接收方,接收到帧头(STX),就会知道通信的开始。
当通信的接收方,接收到帧尾(ETX),就会知道通信的结束。
但是在一帧数据中间出现帧头(STX)或者帧尾(ETX)的时候,就会出现数据丢失的现象。
为了避免数据丢失的现象发生,产生了数据转义规则

三、数据转义规则具体内容

转义前转义后
STX(帧头)0x410x2D,0x21
ETX(帧尾)0x2B0x2D,0x0B
ESC(转义符)0x2D0x2D,0x0D

在发送数据时:
遇到 0x41 时,发送 0x2D,0x21
遇到 0x2B 时,发送 0x2D,0x0B
遇到 0x2D 时,发送 0x2D,0x0D

在接收数据时:
遇到0x2D时,跳过不处理,而把该字节的后一个字节加上0x20。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根号五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值