Здравствуйте, AlexGin, Вы писали:
Pzz>>А что ты будешь делать, если у тебя эти четыре байта разрезались между двумя фрагментами?
AG>То есть — последний фрагмент — менее 4-х байт? Воообще — возможно ли это?
Конечно возможно.
AG>После этого делать "накопление" данных, но критерием окончания накопления — делать не маркер конца,
AG>а факт совпадения длины с заранее заявленной.
Да. А маркер конца становится ненужным.
Pzz>>И ты сразу подрезал себе возможность посылать запросы не по одному, а сразу пачками, а потом получить пачку ответов.
AG>
AG>Это протокол обмана сообщениями, или базар
Это называется request pipelining. Полезная штука, если скорость начинает упираться в round-trip time, а не в пропускную способность канала.
AG>Как я уже упоминал, в рамках одной сессии работает пара: Сервер + конкретный_Клиент.
AG>Скорость обмена — устраивает Заказчика. Зачем делать такое ненужное усложнение?
У тебя есть логический уровень, который отображает твои сообщения, имеющие начало и конец, на поток байтов, которым является TCP (назовем этот уровень framing), и логический уровень, который определяет, что сообщения ты будешь использовать в режиме запрос-ответ. А ты взял, и смешал эти два логических уровня.