construct
Python库:
Tlv = Struct(
'tag' / Int16ub,
'length' / Int32ub,
'value' / Array(this.length, Byte)
)
if __name__ == '__main__':
tlv_data = dict(tag=1, length=5, value=b'\xFF\xFF\xFF\xFF\xFF')
encoded = Tlv.build(tlv_data)
print(encoded)
decoded = Tlv.parse(encoded)
print(decoded)
虽然示例正确地编码和解码了数据,但我需要知道
value
提前进场并通过
length
参数。
是否有一种方法允许我通过传递最小值来初始化结构,即。,
tlv_data = dict(tag=1, value=b'\xFF\xFF\xFF\xFF\xFF')
并让它自己弄清楚
字段应该是?
同时,当我解析原始数据时,我希望它从原始数据中提取长度,然后确保
确实有那么多字节长。
这在原则上是有效的,还是我误解了
?