Что такое сериализация и десериализация концептуально? [дубликат]

Возможный дубликат:
Что такое сериализация объекта?

Хотите получить представление о сериализации и десериализации объекта? Был бы признателен за простой пример. Определены следующие структуры: 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)

5
задан JeremyP 14 April 2011 в 08:06
поделиться