Я разрабатываю сетевое приложение, которое отправляет много пакетов. В настоящее время мой метод сериализации - это просто хак, где он принимает список объектов и преобразует их в строку, ограниченную символом канала '|' и сбрасывает его по сетевому потоку (или просто отправляет его через UDP).C# - Сериализация пакетов по сети
Я ищу более чистое решение для этого в C# при минимальном размере пакета (так что огромная сериализация XML).
Мой опыт работы с BinaryFormatter is SLOW
. Я также рассматриваю возможность сжатия моих пакетов путем их кодирования в строки base64
и их декодирование на стороне клиента. Я хотел бы получить некоторые сведения о том, как это повлияет на производительность моего приложения.
Кроме того, еще один быстрый вопрос:
Моя установка создает 2 розетки (одна TCP and UDP
) и клиент индивидуально соединяется с этими двумя сокетами. Данные сбрасываются либо на основе необходимости (TCP для важных вещей, UDP для неважных вещей). Это мой первый раз, когда я использовал TCP/UDP одновременно и задавался вопросом:
Если есть более унифицированный метод, хотя это и не похоже.
Благодарим за неудобную поддержку.
Причина, по которой я избегал BinaryReader/Writer, объясняется тем, насколько медленным был BinaryFormatter. Любые идеи о скорости этого VS BFormatter? –