TLV
(Type
表示数据的类型,Lenght
表示数据的长度,Value
表示数据值)是一种可变格式,Type
和Length
的长度固定(一般那是2
、4
个字节),Value
的长度由Length
指定。
编码方法:
将类型
type
用htonl
转换为网络字节顺序,指针偏移+4
;将长度
length
用htonl
转换为网络字节顺序,指针偏移+4
;若值
value
数据类型为int
、char
、short
,则将其转换为网络字节顺序,指针偏移+4
,若值为字符串类型,指针偏移+length
。
解码方法:
读取
type
用ntohl
转换为主机字节序得到类型,指针偏移+4
;读取
lengh
用ntohl
转换为主机字节序得到长度,指针偏移+4
;根据得到的长度读取
value
,若value
数据类型为int
、char
、short
,用ntohl
转换为主机字节序,指针偏移+4
,若value
数据类型为字符串类型,指针偏移+length
。
一个编码值又称TLV
三元组。编码可以是基本型或结构型:如果它表示一个简单类型的、完整的显式值,那么编码就是基本型 (primitive
);如果它表示的值具有嵌套结构,那么编码就是结构型 (constructed
)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。