OpenWrt:TLV格式编解码

TLVType表示数据的类型,Lenght表示数据的长度,Value表示数据值)是一种可变格式,TypeLength的长度固定(一般那是24个字节),Value的长度由Length指定。

编码方法:

  1. 将类型typehtonl转换为网络字节顺序,指针偏移+4

  2. 将长度lengthhtonl转换为网络字节顺序,指针偏移+4

  3. 若值value数据类型为intcharshort,则将其转换为网络字节顺序,指针偏移+4,若值为字符串类型,指针偏移+length

解码方法:

  1. 读取typentohl转换为主机字节序得到类型,指针偏移+4

  2. 读取lenghntohl转换为主机字节序得到长度,指针偏移+4

  3. 根据得到的长度读取value,若value数据类型为intcharshort,用ntohl转换为主机字节序,指针偏移+4,若value数据类型为字符串类型,指针偏移+length

一个编码值又称TLV三元组。编码可以是基本型或结构型:如果它表示一个简单类型的、完整的显式值,那么编码就是基本型 (primitive);如果它表示的值具有嵌套结构,那么编码就是结构型 (constructed)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值