2012-12-26 4 views
1

Dinnerbone (게임 개발자 중 한 명이 쓴) 파이썬 클래스를 사용하여 Minecraft 서버를 쿼리하려고합니다. 쿼리하려고 할 때 "데이터 그램 소켓에서 보낸 메시지가 내부 메시지 버퍼 또는 다른 네트워크 한계보다 크거나 데이터 그램을 수신하는 데 사용 된 버퍼가 데이터 그램보다 작았습니다"라는 오류 메시지가 나타납니다. 이해할 수있는 것부터 이것이 UDP 자체의 물리적 한계 일 수 있습니다.게임 서버에 파이썬 쿼리

나는이 문제를 일으키는 원인이 무엇인지, 내가 무엇을 할 수 있는지 잘 모른다.

클래스

는 여기에서 찾을 수 있습니다 : https://github.com/Dinnerbone/mcstatus/blob/master/minecraft_query.py

어떤 조언 오류가 명령 프롬프트 창에 표시되지 않는 한 감사 장고를 통해 실행할 때, 그러나 그것은 오류를한다.

+0

당신의 직감이 맞을 가능성이 큽니다. UDP는 물리 계층 데이터 그램 크기에 의해 제한됩니다. 실제 유선과 유선 사이의 불일치가있을 수 있습니다. –

답변

2

문제는 스크립트가 패킷을 저장할 버퍼가 너무 작은 버퍼로 패킷을 읽으려고한다는 것입니다. 이것은 스크립트의 42 행에서 발생하는 것으로 보입니다.

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

버퍼 크기를 1460에서 더 큰 것으로 변경해보십시오.