我正在制作一个简单的Python脚本来与服务器通信,以获取包含金钱,武器拥有,xp等播放器数据的XML文件。
在一个数据包中发送的文件太大,因此它会被分块。但是,在使用while while循环时:
def parseChunk(chunk):
if "\r\n" in chunk:
return chunk.split("\r\n")[1]
else:
return chunk
while True:
data = ssl_sock.recv(4096).decode()
print(data)
if "\r\n\r\n" in data and start_chunking is False:
start_chunking = True
temp = data.split("\r\n\r\n")[1]
login_resp += temp.split("\r\n")[1]
elif start_chunking:
if data.startswith("0\r\n"):
print("reached the end")
break
login_resp += parseChunk(data)
过早地print
已“到达终点”,文件的很大一部分仍然缺失。据我所知,当服务器完成发送块时,它会发送“最终块”,即0\r\n
,表示不会再发送更多数据?显然不是这样。服务器也没有发送Content-Length
标头,所以我不知道期望的字节数。
非常感谢任何帮助或见解。谢谢你的时间。如果需要更多信息,请在downvoting之前告知我们。感谢。