Protocol buffer学习一(为什么要学习)

标注下,今天开始看看Protocol buffer格式,熟悉它java c++库的使用。

首先来说明下 PB(Protocol buffer)  json  XML三者之间的比较


 XMLJSONPB
数据结构支持复杂结构简单结构较复杂结构 
数据保存方式文本文本二进制 
数据保存大小一般 
解析效率一般 
语言支持程度非常多C++/Java/Python 
开发难度?繁琐?繁琐简单简单 
学习成本 
适用范围数据交换数据交换数据交换 

这个数据是抄袭别人的,但是就个人使用上来说,肯定是把XML给抛出几条街。。

看着xml那复杂的神奇的定义。。。不说了。

json其实是种好格式,可读性好,解析也快,用gson去序列化解析,速度没得说,然后体积也小。

既然json这么好,为什么要学习pb呢?

说明下原因把。

装甲逆袭的单机功能已经都完成了,然后最近呢也没时间回家敲代码,所以,很果断的选择了学习这条不归路。

然后,装甲逆袭的网络部分已经确定了是用mina写服务端然后客户端用bsdsocket,但是缺少了一种数据格式。

其实本来用json作为数据格式是个很好的选择,可以做到非常懒惰的做法,将封包解包的步骤都省略了,然后大小端问题也可以不去管它。多好的选择啊。。

但是总是觉得jsoncpp这个东西用的蛋疼,好把所以就更蛋疼的来学习pb了,今天是第一天,上面大概介绍了下pb与其他数据格式的比较,那么现在就来说说pb的其他情况吧。


抄自百度百科..

protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了三种语言的实现:javac++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。


PB的源码结构大致如下:
PB源码
{
PB基础库
{
Message抽象层
Descriptor抽象层
IO子系统
}
PB编译器---- 源码生成器
}


发现也没什么好说的,今天就先到这里吧,明天学习下pb java库的使用!

然后就介绍下接下来的学习进程吧。

-------pb java库的使用

-------pb c++库的使用

-------pb使用过程中的一些问题

-------pb与json的比较

-------pb的实际应用(在装甲逆袭中,服务端使用java,客户端使用c++)实现网络的解析读取。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值