0
我想解析來自網絡與python的輸入數據包。如何更改類[python]中的ctypes字段大小?
爲了做到這一點,我創建簡單的類:
class S2C_ChallengePacket(ctypes.Structure):
_pack_ = 1
_fields_ = [
("type", ctypes.c_byte),
("sessionid", ctypes.c_byte * 4),
("challenge", ctypes.c_wchar_p)]
現場「挑戰」這是空值終止字符串,它有一個變量(可更換)尺寸。所以我加了包變量給我的S2C_ChallengePacket類。
包可選的小的整數,其允許覆蓋在該實例結構域的比對。 包必須已定義字段已分配,否則它將不起作用。
但是,如果我嘗試引用「挑戰」字段,我會收到「分段錯誤」錯誤。
packet = QueryPacket.S2C_ChallengePacket.from_buffer_copy(data)
print packet.challenge <--- "Segmentation fault" here
你確定包是做你認爲它在做什麼?你能舉一個你的數據的例子嗎? – GWW
這裏的例子http://wiki.vg/Query#Response – TroyashkA