Я пишу код для сериализации некоторых данных для отправки по сети. В настоящее время я использую эту примитивную процедуру:
- создать буфер
void*
- применять любые операции упорядочения байтов, такие как семейство
hton
для данных, которые я хочу отправить по сети. - используйте
memcpy
для копирования памяти в буфер - отправить память через сеть
Проблема заключается в том, что с различными структурами данных (которые часто содержат данные void *, поэтому вы не знаете, нужно ли вам заботиться о порядке байтов), код становится действительно раздутым с кодом сериализации, который очень специфичен для каждой структуры данных и может 're reused вообще.
Каковы хорошие методы сериализации для C, которые делают это проще/менее уродливым?
-
Примечание. Я привязан к определенному протоколу, поэтому я не могу свободно выбирать, как сериализовать мои данные.