I want to transfer data from a client to a server. The data is stored in a Data:
class Data{
Type1 Obj1;
Type2 Obj2;
Type3 Obj3;
//...
}
First I insert the data into a buffer type:
Buffer(data);
Then I use one of Boost.Asio's send functions:
Send(endpoint_s, buffer_1)
Alternatively, I could send Data directly:
Send(endpoint_s, &data, sizeof(Data));
On the receiving end, I am expecting a Data. First I receive the data into a Buffer.
Receive(endpoint_c, buffer_2);
Now buffer_2 contains a collection of bits that represents a Data on the server's machine. I wish I could just reinterpret_cast these bits into a Data, however, this results in undefined behavior. How am I supposed to convert the collection of bits in buffer_2 into a Data in a way that does not result in undefined behavior?