我正在尝试使用由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/