Python 3中包装结构的问题



我正在尝试在IDEONE上备份以下结构,但是我一直在以下代码遇到运行时问题:

from struct import *
Version  = 0xC0DE
DefaultUsername = 'xxxxxxxxxxxxxxxx' # this must always be 16 characters long

def insert_username( name ):
    return name + DefaultUsername[len(name) : ]
join_request = pack('ii4c16c',Version, 0x7777, 'JOIN', insert_username('justin') )

另外,我想应用一个CRC32函数 - 它需要一个字节数组;我可以将join_request与32 CRC字节结果一起放在另一个包结构中吗?

谢谢!

格式字符串中的规范 c需要一个字符参数。您通过多字符字符串,因此需要s规格。但是,s规格需要二进制字符串(字节),因此请将您的字符串参数转换为字节数组:

join_request = pack('ii4s16s',Version, 0x7777, b'JOIN', insert_username('justin').encode())

结果是字节数组。

最新更新