python的pack和unpack用法
pack和unpack在处理二进制流中比较常用的封包、解包格式
pack(fmt, v1, v2, …)
unpack(fmt, string)
格式中的第一个字符来改变对齐方式(字节序).定义如下
例如:格式为:2字节(包长度)+4字节(包id)+包内容 >表示字节序
解包
size, = struct.unpack(‘>H’,raw[0:2])
cmd, = struct.unpack(‘>H’, raw[2:4])
string, = struct.unpack(‘>{0}s’.format(size - 4), raw[4:size])
封包:
fmt = “>HH{0}s”.format(len(result))
args = (len(result), cmd,result)
data = struct.pack(fmt, *args)