drb*_*rby 5 c++ serialization struct bytearray
我通过网络传输了一个字符/字节数组.它包含标题和一些数据.我想将标题映射到结构上.这是一个例子:
#pragma pack(1)
struct Header
{
unsigned short bodyLength;
int msgID;
unsigned short someOtherValue;
unsigned short protocolVersion;
};
int main()
{
boost::array<char, 128> msgBuffer;
Header header;
for(int x = 0; x < sizeof(Header); x++)
msgBuffer[x] = 0x01; // assign some values
memcpy(&header, msgBuffer.data(), sizeof(Header));
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设结构永远不包含任何可变长度字段,这总是有效吗?是否有平台独立/惯用的方式来做到这一点?
注意:
我在互联网上看到了很多允许你序列化/反序列化的库,但我得到的印象是,如果以前用同一个库序列化它们,它们只能反序列化.好吧,我无法控制传输的格式.我肯定会得到一个byte/char数组,其中所有值都是相互跟随的.