Здравствуйте, lnkuser, Вы писали:
L>Прикол в том, что после считывания первого пакета на сокете пусто, повторный read будет блокирующим.
Ну да. Если два куска шли физически отдельными пакетами, между их появлением будет некоторая пауза.
L>Можно ли как-то принудительно ждать, пока сегменты соберуться? Ничего путного в поиске я не нашел...
Нет, нельзя.
А откуда TCP вообще может знать, что "сегменты собрались". Ему на стороне отправителя сказали два раза send(). Откуда он знает, что это связанные данные?