Существует много компьютерных систем, которые используют специальные маркеры для определения конца сообщения - c использует \ 0 для символьных массивов, JPEG использует 0xFF в качестве маркера и т. Д.
Все эти системы приводят нас к выводу, что префикс сообщения с его длиной намного проще и надежнее.
Сам TCP фактически делает это. Если вы записываете два байта пользовательского ввода в сокет, на другом конце будут доступны два байта, и пакеты TCP, обрабатываемые системой, знают об этом, поскольку они помечают каждый пакет длиной полезной нагрузки.
Как только вы закончите отправку ввода, вы можете отключить сокет с одной стороны, и с другой стороны будет получено уведомление (если они включили такие уведомления).