Я делаю простой скрипт на Python для связи с сервером, чтобы получить XML-файл, содержащий данные игрока, такие как деньги, принадлежащее оружие, хр и т. Д.
Это слишком большой файл для отправки в одномпакет, так что он будет разбит на куски.Однако при использовании этого цикла 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
, поэтому я не знаю, какое количество байтов ожидать.
Буду признателен за любую помощь или понимание.Спасибо за ваше время.Если требуется дополнительная информация, пожалуйста, дайте мне знать, прежде чем голосовать.Спасибо.