c ++ Отправка структуры по сети

Я работаю с Intel SGX, который имеет предопределенные структуры. Мне нужно отправить эти структуры через сетевое соединение, которое управляется с помощьюboost::asio, Структура, которую нужно отправить, имеет следующий формат:

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;

Для отправки и получения, методыasync_write а такжеasync_async_read_some используются

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));

в то время какdata_ определяется как

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

Мой первый подход состоял в том, чтобы преобразовать отдельные элементы структуры в строки и сохранить их вvector<string> который затем преобразуется вchar* тогда как каждый элемент отделен\n.

Но при сборке получилchar* на стороне приемника обратно к первоначальной конструкции я столкнулся с некоторыми неприятностями.

Это действительно так, как это должно быть сделано, или есть более хороший способ передачи структуры?

Ответы на вопрос(1)

Ваш ответ на вопрос