Python 查询游戏服务器

标签 python django udp minecraft

我正在尝试使用由dinnerbone(游戏开发者之一)编写的python 类来查询Minecraft 服务器。当我尝试查询它时,出现错误“在数据报套接字上发送的消息大于内部消息缓冲区或其他一些网络限制,或者用于接收数据报的缓冲区小于数据报本身”。据我了解,这似乎可能是UDP本身的物理限制。

我不完全确定是什么原因导致了这种情况,也不完全确定我可以采取什么措施。

可以在这里找到该类:https://github.com/Dinnerbone/mcstatus/blob/master/minecraft_query.py

任何建议都值得赞赏,因为错误不会显示在命令提示符窗口中,但通过 Django 运行时会出错。

最佳答案

您遇到的问题是脚本正在尝试将数据包读入缓冲区,该缓冲区太小而无法容纳它。这似乎发生在脚本的第 42 行:

buff = self.socket.recvfrom(1460)[0]

尝试将缓冲区大小从 1460 更改为更大的值。

关于Python 查询游戏服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035448/

相关文章:

python - 检查 Pandas 列列表中的项目是否包含另一列中的值

javascript - Google App Engine channel API (Python/Django) 问题

python - 了解 Django 3.1 中的模型权限

javascript - 如何将UDP收到的数据传输到node.js中的网页

python - 避免嵌套 for 循环

python - python中函数的字典输入

Python - 值错误 : operands could not be broadcast together with shapes

python - CSRF token 丢失或不正确(我知道,之前已被问过!)

c - 数据在广播 UDP 套接字中累积(FIFO?)

go - 使用 gopacket 向 127.0.0.1 发送 UDP 数据包