构建一个发送到minecraft服务器python的包

2024-06-06 06:48:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经试了好几个小时(字面意思)给minecraft服务器发送一个包。 http://www.minecraftwiki.net/wiki/Classic_Server_Protocol#Packet_Protocol (玩家识别位)。 但我发现了错误'结构错误:s的参数必须是bytes对象。 代码如下: packet = struct.pack('bb8s110sb', 0, 7, username, verification_key, 0) # packet type s.send(packet)

如何才能成功地将玩家身份包发送到服务器?在

任何帮助是非常感谢的,我将不能回答任何答案至少12小时后,这是张贴。+如有任何帮助,请联系:)


Tags: httpnetserverpacketwww错误wiki玩家
1条回答
网友
1楼 · 发布于 2024-06-06 06:48:13

struct的pack函数要求用户名和验证密钥是字节对象。在

在Python3中,当您定义一个类似“asdf”的字符串时,它是用unicode编码的。为了支持许多编码,python有byte对象。要将字符串转换为字节对象,只需使用所需的编码作为参数调用它们的encode方法。在这种情况下,'ascii'对两个变量都有效,因此

数据包=结构包('bb8s110sb',0,7,用户名.encode('ascii'),验证_密钥编码('ascii'),0)

应该能解决你的问题。在

相关问题 更多 >