Я работал над проектом, в котором мне нужно передавать большие объемы двоичных данных, некоторые из которых представляют собой структуры, перечисления, списки и т. Д., А некоторые - чисто двоичные данные. Я пытаюсь разработать стратегию для решения проблем, когда передача данных между 64-битной и 32-битной компиляцией.
В настоящее время я помечаю сборку как целевую 32-битную, чтобы избежать этой проблемы, но я хочу открыть и использовать 64-битную / 32-битную, выбрав Any.
Я знаю, что "мог" использовать сериализацию, но это добавляет к передаче довольно много дополнительных данных, и поскольку эти передачи могут проходить через VPN и т. Д., Было решено не использовать чистую сериализацию .Net из-за добавленной дополнительной нагрузки .
Поэтому, когда вы делаете этот процесс, было бы лучше:
- Добавить 1 байт в КАЖДЫЙ блок данных, который передается с указанием размера битов, который использовался для кодирования данных на начальном конце
- Добавить 1 байт, который используется в начальном рукопожатии между системами для указания размера битов, который будет использоваться для всей связи
- Не используйте типы данных по умолчанию (целочисленные, короткие и т. Д.), А вместо этого кодируйте их в данных, чтобы передача не зависела от системных размеров типов данных.