首页 › 标签存档 › protobuf

protobuf用Extensions定义消息方法

protobuf Extensions这个东西还真蛮有用的, 这里记录一下用Extensions定义方法。
继续阅读 »

protobuf 中的嵌套消息的使用

之前已经介绍了protobuf的简单的使用,不过还留下了一个问题,那就是之前主要介绍的都是对简单数据的赋值,简单数据直接采用set_xx()即可,但是如果不是简单变量而是自定义的复合类型变量,就没有简单的set函数调用了,下面看一个简单的例子。
继续阅读 »

protobuf 生成的C++代码详解

Packages


如果 .proto 文件中包含 package 定义,此文件的整个内容将被放置到对应的C++命名空间中。例如,假定 package 声明为:

此 .proto 文件中所有声明将都属于命名空间 foo::bar。
继续阅读 »

protobuf c++入门

1、在.proto文件中定义消息格式
2、使用protobuf编译器
3、使用c++ api来读写消息
0、为何使用protobuf?
1、原始内存数据结构,可以以二进制方式sent/saved.这种方式需要相同的内存布局和字节序。
2、以ad-hoc方式将数据项编码成一个简单字符串—-比如,将4个int类型编码成”12:3:-23:67″。这种方式简灵活。适用于简单数据。
3、将数据序列化为XML。这种方式很流行,因为xml可读性好,编码解码方便,性能也好。仅仅XML dom树比较复杂。

继续阅读 »

化繁为简–google protobuf

1.概述。

protobuf,作为网络通信时的消息载体,不仅效率高,而且还加快开发进度,减少BUG。
继续阅读 »

Google Protocol Buffer缺陷

之所以要列出protobuf的缺陷,就是为了在使用Protobuf的时候可以规避这些缺陷;没有一个工具是十全十美的,我们在使用工具的时候需要扬长避短,因此要对其优点和缺点都有所了解才可以设计出更好的软件系统!!!

继续阅读 »

我的Protobuf消息设计原则(续)–实践

1.首先为 聊天服务器(Chat)定义google protobuf的协议接口文件

接口主要遵循 Request、Response、Notification(Indication),Command(本文未出现)四大消息分类,并且使用Message顶层消息把Request、Response,Notification等包含起来;并定义一个MSG枚举值,用于表示具体的消息值(在google protobuf RPC过程中,其实 每个service方法就是一个Request和Response的应答对,只不过其消息值的编码是RPC自动分配的)
继续阅读 »

我的Protobuf消息设计原则

网络通信涉及到消息的定义,不管是使用二进制模式、xml、json等格式。消息都可以大体的分为 命令消息、请求消息、应答消息和指示消息4大消息类型。一般情况下每个消息还还有包含一个序列号和一个能够唯一区分类型类型的消息编号,编号可以使用字符串、整数或者枚举等。
继续阅读 »

Linux下安装protobuf并实现简单的客户端服务器端通信

http://code.google.com/p/protobuf/downloads/list上可以下载Protobuf的源代码。
继续阅读 »