我想创建一个5字节的结构,然后再发送:
import struct
struct.pack("?i", True, 0x01020304)
>>b'\x01\x00\x00\x00\x04\x03\x02\x01'
但是正如您看到的,由于某种原因,将1字节的布尔型get填充3字节或填充为整数。 因此,我想要的是:
>>b'\x01\x04\x03\x02\x01'
我该怎么办?为什么我的解决方案不起作用?似乎已根据the documentation正确使用。
答案 0 :(得分:0)
我的问题通过对this question的回答得以解决。格式字符串开头的=
字符告诉pack方法不对齐数据,而是产生一个精确指定长度的字节字符串。 this chapter中指定了格式字符是否允许对齐。我莫名其妙地错过了。