Возможный дубликат:
Что такое сериализация объекта?Хотите получить представление о сериализации и десериализации объекта? Был бы признателен за простой пример. Определены следующие структуры: struct Struct1 {uint32_t num; char str [10]; char str2 [10];} struct Struct2 {...
У меня есть несколько структур, определенных для отправки через разные операционные системы (TCP-сети). Определенные структуры:
struct Struct1 { uint32_t num; char str[10]; char str2[10];} struct Struct2 { uint16_t num; char str[10];} typedef Struct1 a; typedef Struct2 b;
Данные хранятся в текстовом файле. Формат данных такой:
- 123
- Pie
- Crust
Struct1 a хранится как 3 отдельных параметра. Однако struct2 - это два отдельных параметра, вторая и третья строки которых хранятся в char str []. Проблема в том, что когда я пишу на сервер через несколько сетей, данные не принимаются правильно. Есть множество пространств, разделяющих различные параметры в структурах. Как обеспечить правильную отправку и заполнение при записи на сервер? Как правильно хранить данные (динамический буфер или фиксированный буфер)?
Пример записи: write (fd, & a, sizeof (typedef struct a)); Это правильно?
Проблема с выходом на стороне приема для struct2:
- 123 (,)
- 0 (, Pie)
- 0 (Crust,)
Правильный выход
123 (Pie, Crust)