C程序员必读ProtocolBuf

这篇教程提供了一个面向C++程序员、关于protocolbuffers的基础介绍。通过创建一个简单的示例应用程序,它将向我们展示:1在.proto文件中定义消息格式2使用protocolbuffer编译器3使用C++protocolbufferAPI读写消息

这不是一个关于使用C++protocolbuffers的全面指南。要获取更详细的信息,请参考ProtocolBufferLanguageGuide和EncodingReference。

为什么使用ProtocolBuffers

我们接下来要使用的例子是一个非常简单的”地址簿”应用程序,它能从文件中读取联系人详细信息。地址簿中的每一个人都有一个名字,ID,邮件地址和联系电话。

如何序列化和获取结构化的数据?这里有几种解决方案:

1以二进制形式发送/接收原生的内存数据结构。通常,这是一种脆弱的方法,因为接收/读取代码的编译必须基于完全相同的内存布局、大小端等等。同时,当文件增加时,原始格式数据会随着与该格式相连的软件拷贝而迅速扩散,这将很难扩展文件格式。2你可以创造一种ad-hoc方法,将数据项编码为一个字符串——比如将4个整数编码为“12:3:-23:67”。虽然它需要编写一次性的编码和解码代码且解码需要耗费小的运行时成本,但这是一种简单灵活的方法。这最适合编码非常简单的数据。9序列化数据为XML。这种方法是非常吸引人的,因为XML是一种适合人阅读的格式,并且有为许多语言开发的库。如果你想与其他程序和项目共享数据,这可能是一种不错的选择。然而,众所周知,XML是空间密集型的,且在编码和解码时,它对程序会造成巨大的性能损失。同时,使用XMLDOM树被认为比操作一个类的简单字段更加复杂。

Protocolbuffers是针对这个问题的一种灵活、高效、自动化的解决方案。使用Protocolbuffers,你需要写一个.proto说明,用于描述你所希望存储的数据结构。利用.proto文件,protocolbuffer编译器可以创建一个类,用于实现自动化编码和解码高效的二进制格式的protocolbuffer数据。产生的类提供了构造protocolbuffer的字段的getters和setters,并且作为一个单元,







































北京治疗白癜风要多少费用
白癜风公益活动持续开展



转载请注明:http://www.jiaju1314.com/jyqj/11180.html

  • 上一篇文章:
  •   
  • 下一篇文章: