c ++ Enviando estrutura pela rede

Estou trabalhando com a Intel SGX, que possui estruturas predefinidas. Preciso enviar essas estruturas através de uma conexão de rede que é operada usandoboost::asio. A estrutura que precisa ser enviada tem o seguinte formato:

typedef struct _ra_samp_request_header_t{
    uint8_t  type;     /* set to one of ra_msg_type_t*/
    uint32_t size;     /*size of request body*/
    uint8_t  align[3];
    uint8_t body[];
} ra_samp_request_header_t;

Para o envio e recebimento, os métodosasync_write easync_async_read_some são usados

boost::asio::async_write(socket_, boost::asio::buffer(data_, max_length),
                                          boost::bind(&Session::handle_write, this,
                                          boost::asio::placeholders::error));

socket_.async_read_some(boost::asio::buffer(data_, max_length),
                            boost::bind(&Session::handle_read, this,
                            boost::asio::placeholders::error,
                            boost::asio::placeholders::bytes_transferred));

enquanto quedata_ é definido como

enum { max_length = 1024 };
char data_[max_length];

Minha primeira abordagem foi transformar os elementos de estrutura única em strings e armazená-los em umvector<string>&nbsp;que é posteriormente transformado emchar*&nbsp;considerando que cada elemento é separado por\n.

Mas ao montar o recebidochar*&nbsp;no lado do receptor, de volta à estrutura original, encontro alguns problemas.

É realmente assim que deve ser feito ou existe uma maneira mais agradável de transferir a estrutura?