Я хочу отправить строки JSON взад и вперед по соединению сокета в C# (xamarin).Как получить строку JSON из сокета
Я хочу знать, как получатель знает, сколько байтов считывается из сокета, чтобы получить полную строку JSON, потому что строка будет отличаться по размеру.
Должен ли я отправить длину сначала в двоичном формате (возможно, на один или два байта), а затем на строку JSON? Каков стандартный способ сделать это, чтобы получатель знал, сколько байтов считывается из сокета каждый раз, когда он получает полную строку JSON.
Он должен знать, сколько байтов на строку, потому что каждая строка представляет собой отдельный пакет, и если многие пакеты отправляются обратно назад, если длина каждой строки неизвестна точно, она будет считываться за конец одного string и в начале другого, или не читайте всю строку, так или иначе она будет разбиваться при декодировании искаженной строки.
Другая проблема, если я отправляю длину сначала в двоичном формате, тогда, если что-то должно произойти, когда получатель не синхронизируется с отправителем, тогда он не знает, какой байт является длиной больше, потому что он не может указать, где начинаются строки , и какие входящие данные представляют длину, он просто получит кучу байтов, и он не будет знать, где начало, откуда заканчивается и т. д.
Любой знает, как правильно это сделать, не записывая мегабайт кода ?
Благодаря