Я всегда считал отправку данных без четко определенного конечного символа плохой практикой. Я лично рекомендовал бы сделать следующее:
В качестве отправителя добавьте к сообщению символ STX (0x02) и добавьте символ ETX (0x03).
Получатель должен распознать STX как начало нового сообщения и затем читать (блокировать?) До получения ETX. Если ETX не был получен в разумные сроки, возникла проблема с чтением всего сообщения.
Вам не нужно использовать STX и ETX, вы также можете использовать \ r \ n или что-то, что не является частью вашего сообщения.
Если вы не используете четко определенный конец сообщения, читатель никогда не узнает, когда прекратить чтение, и вы испортите ваше общение.
Один пример, который я назвал проблемным:
Отправитель отправляет два сообщения одно за другим. Без символа EndOfMessage получатель попытается прочитать это как одно сообщение. С помощью EOM получатель может разделить два сообщения и обработать их оба.