簡體   English   中英

C ++序列化和壓縮向量 <structs> 以平台無關的方式

[英]C++ serializing and compressing vector<structs> in platform independent way

我想序列化一個向量作為消息在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 ++編程問題,應該已經為它開發了很好的解決方案。

您正在尋找的是通用序列化庫; 有很多可用的選擇

我特別喜歡兩個:Google的Protocol Buffers和Apache的Avro 您可以使用ZMQ。

如果您訪問ZMQ FAQ (轉到“常規”部分),您會發現Protocol Buffers是代理提到的序列化格式之一。

我至少會考慮將Boost SerializationBoost gzip過濾流結合使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM