在int上执行struct.pack时是否有TypeError?

时间:2016-01-24 14:42:32

标签: python minecraft

我正在尝试在Python中实现Server List Ping。特定的数据包结构位于上述链路,类型和通用数据包结构为here。我的代码是here。但是当我尝试运行该代码时,它给了我这个错误:

Traceback (most recent call last):
  File "ddos.py", line 6, in <module>
    handshakeBytes.append(pack('<i', 0x00))
TypeError: an integer is required

我还尝试用0x00围绕int(),但无济于事。

1 个答案:

答案 0 :(得分:1)

从页面:https://docs.python.org/2/library/struct.html
struct.pack(fmt,v1,v2,...) - 返回包含值v1,v2,...的字符串

所以你试图将字符串放入字节数组中,这显然不会起作用。将您的字节放入数组而不使用pack函数或使用:

handshakeBytes += pack(whatever)

符号。