我有一個腳本,連接到礦井工藝服務器,接收數據包,併發送數據包。Python解析Minecraft包
因此,我發送一個'登錄'數據包,並收到'登錄'數據包。不幸的是,接收到的登錄數據包是編碼的(關於編碼的信息在這裏:http://wiki.vg/Protocol#0x01)。
接收到的登錄數據包存儲在名爲received_login_packet
的變量中。我需要解碼它,以便我可以獲得單獨的數據位,例如數據包類型,尺寸等等。去做這件事。
下面是一些代碼,如果有幫助:
#encoding the packet to send
encuserlen = str(len(enc_user)) # enc_user is just my username
packfmt = '>bih%sshiibBB' % encuserlen
packetbytes = struct.pack(packfmt, 1, 28, len(data['user']), enc_user, 0, 0, 0, 0, 0, 0)
s.send(packetbytes)
time.sleep(2)
#login packet sent, waited for response
response = s.recv(1024) #this is the raw login response.
#it's encoded as detailed above. i want to decode it
任何幫助,將不勝感激,並請不要猶豫地說,如果它不夠清晰。
這還不夠清楚。請包括代碼示例。 – Will 2012-03-07 14:22:18
還好嗎?我添加了一些代碼,雖然沒有太多需要。大部分所需的信息都在wiki頁面中。 – Jack 2012-03-07 14:59:23