2012-12-26 65 views
1

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

我不完全确定是什么导致了这个问题,或者我能做些什么。

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

任何建议表示赞赏的错误不会在命令提示符窗口中显示然而,通过Django的运行时不会出错。

+0

你的直觉很可能是正确的。 UDP受物理层数据报大小的限制。错误可能是实际的字节有线和数据包大小不匹配。 –

回答

2

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

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

尝试从1460改变缓冲区大小更大的东西。