[英]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 Serialization與Boost gzip過濾流結合使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.