Я давно программирую с помощью сокетов, и одна из вещей, которые я всегда делаю, - это включение vli (индикатора переменной длины) в начале сообщения.Значение vli 2 или 4 байта указывает на длину сообщения.Идея состоит в том, что если два сообщения приходят вместе, вы можете разделить их на части.Если сообщение охватывает несколько пакетов, вы можете объединить их в буфер для создания сообщения.
Вопрос в том, использую ли я c # TcpSocket или TcpListener для отправки сообщения по TCP, все равно необходимо ли включать vli или c #Об этом заботятся библиотеки сокетов и гарантируют, что одно сообщение отправляется за событие, а сообщение не разбивается на несколько пакетов.