Это не редкость.
Другим способом, кроме наличия разделителя (например, |
), было бы использование длины сообщения фиксированного размера, как всегда 4 или 8 символов.Затем вы можете прочитать 4 (или 8 или что вы выбираете), чтобы получить размер сообщения.Проблема в том, что вам нужно сделать как минимум два вызова на recv
: один для длины и один для тела.