Re[5]: Максимальная длина TCP пакета в сети
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.20 21:08
Оценка: 4 (1) +1
Здравствуйте, AlexGin, Вы писали:

N>>В чём эта "практика"? Если вы учитываете, какими порциями смог прочитать recv() на приёмнике — вы уже успешно выстрелили себе в ногу. Не надо так.


AG>Ну хорошо — я накопил данные от первого recv(), затем следующего и т.д — пока не уяснил что блок_пользовательских_данных принят весь.

AG>Блок_пользовательских_данных — это тот полный набор данных, что следует от сервера к клиенту.
AG>Таким образом, если при передаче по сети его разбило на несколько частей, то я их могу "накопить" и соединить вместе.
AG>Так нормально?

Да, так нормально.

Теперь надо решить, как определять, что передача от сервера закончилась (а для сервера — аналогично от клиента). Есть разные стили фрейминга для этого. Например, один из классических — вначале идёт длина всей посылки в двоичном виде (например, 4 байта в network order == big-endian). Но можно придумать тысячи других по вкусу.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.