我希望序列化一个矢量,以便在zeromq中作为消息发送。该结构只包含基本类型(bool,string,int,float)。
由于我通过网络进行传输,我想使用某种压缩来节省带宽。
我也希望这与平台无关。我将从Linux盒子中播出,但收件人可以是Windows或Linux。
第三方库是可以的,只要它们可以在Windows和Linux下工作。
要发送zeromq消息,通常使用memcpy来“加载”数据。 http://api.zeromq.org/2-1:zmq-msg-data
有人可以指向适当的库并提供序列化/压缩的简单示例代码以及随后的反序列化/解压缩。我想发送的结构如下所示:
struct sampledata {
string testing_text;
int testing_int;
float testing_number;
bool testing_bool;
}
我觉得这一定是一个常见的C ++编程问题,应该已经为它开发了很好的解决方案。
答案 0 :(得分:1)
您正在寻找的是通用序列化库; there are many available options
我特别喜欢两个:Google的Protocol Buffers和Apache的Avro。您可以使用ZMQ。
如果您访问ZMQ FAQ(转到“常规”部分),您会发现Protocol Buffers是代理提到的序列化格式之一。
答案 1 :(得分:1)