Объясните, пожалуйста, код ниже получает TCP ответ от сервера на ура:
socket_f = socket.makefile()
data = socket_f.read()
Но, если сервер пришлёт два ответа подряд, в data попадут оба?
И что значит “подряд”? Т.е. в каком случае read() остановится, а в каком продолжит читать? зависит от скорости выполнения?
Я пытаюсь понять, корректно ли обрабатывать ответы таким вот способом или нужно читать сокет в цикле, парся все данные, чтобы найти заголовок протокола, длину сообщения и данные.
Или так, EOF ставит в стрим сама ОС, когда все tcp сегменты сообщения получены?