Я пишу программу на C # с сервером, который передает данные между несколькими клиентами.Прямо сейчас, когда мне нужно отправить данные, я отправляю 4 байта данных длины и длины, и всякий раз, когда есть данные, доступные для чтения на принимающей стороне, он считывает первые 4 байта как длину и считывает количество байтов длины какданные.
Мне было интересно, может ли быть ситуация, когда несколько байтов могут быть как-то пропущены, и тогда я застряну, пытаясь прочитать миллиарды байтов несуществующих данных, потому что я читаю неправильные байты какдлина.
Я думал об использовании, скажем, уникальной строки, и всякий раз, когда эта строка читается, после этого читается 4 байта длины, затем какая-то контрольная сумма, а затем 4 байта случайного идентификатора,и затем длина количества байтов считывается.Если эти байты не проходят контрольную сумму или в ней найдена уникальная строка, то сообщение отбрасывается и отправляется запрос на повторную отправку сообщения по его идентификатору, и следующее сообщение будет получено, начиная со следующего вхожденияуникальная строка.
Достаточно ли хорош этот метод или я должен сделать это другим способом?