struct.pack
似乎在给定单独的格式(在我的情况下,创建7个不同的缓冲区)与单独的格式(同样,对7个不同的值的映射)时表现不同。发生了什么事?
结果:
-单个格式-
LID:i 4 b'\ x00 \ x00 \ x00 \ x00'
OPN :? 1 b'\ x00'
OID:i 4 b'\ x00 \ x00 \ x00 \ x00'
PUA:d 8 b'\ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00'
ISP: 1 b'\ x00'
BEP:i 4 b'\ x00 \ x00 \ x00 \ x00'
DST:i 4 b'\ x00 \ x00 \ x00 \ x00'
长度[26]-组合整个格式-
格式:i?id?ii长度[36]缓冲区:b'\ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00'
更新
我将格式更改为小尾数开头为'<'
。这似乎已经纠正了对齐方式(对无),然后导致整个格式具有预期的26个元素长度。