我正在尝试使用由Dinnerbone(游戏开发者之一)编写的python类来查询Minecraft服务器。当我尝试查询它时,我收到错误“在数据报套接字上发送的消息大于内部消息缓冲区或某些其他网络限制,或者用于接收数据报的缓冲区小于数据报本身”。根据我的理解,似乎这可能是UDP本身的物理限制。
我不完全确定导致这种情况的原因或我能做些什么。
可在此处找到课程:https://github.com/Dinnerbone/mcstatus/blob/master/minecraft_query.py
任何建议都值得赞赏,因为错误没有在命令提示符窗口中显示,但是当通过Django运行时它会出错。
答案 0 :(得分:2)
您遇到的问题是脚本正在尝试将数据包读入缓冲区,该缓冲区太小而无法容纳它。这似乎发生在剧本的第42行:
buff = self.socket.recvfrom(1460)[0]
尝试将缓冲区大小从1460更改为更大的值。