[原创翻译]Protocol Buffer Basics: C#】的更多相关文章

Protocol Buffer 基础知识:c#    原文地址:https://developers.google.com/protocol-buffers/docs/csharptutorial       这篇讲解c#版的Protocol Buffers的帖子,并不是完整的指南.想了解更多的信息请查看 Protocol Buffer Language Guide,  C# API Reference,  C# Generated Code Guide和 Encoding Reference.…
目录 Protocol Buffer Basics: C++ 为什么使用 Protocol Buffers 在哪可以找到示例代码 定义你的协议格式 编译你的 Protocol Buffers Protocol Buffer API 写消息(Writing A Message) 读取消息 扩展 Protocol Buffer 优化技巧 高级用法 Protocol Buffer Basics: C++ 这篇教程提供了一个面向 C++ 程序员.关于 protocol buffers 的基础介绍.通过创…
原文https://developers.google.com/protocol-buffers/docs/pythontutorial Protocol Buffer Basics: Python This tutorial provides a basic Python programmer's introduction to working with protocol buffers. By walking through creating a simple example applica…
Protocol Buffer 基础知识:c#    原文地址:https://developers.google.com/protocol-buffers/docs/csharptutorial       这篇讲解c#版的Protocol Buffers的帖子,并不是完整的指南.想了解更多的信息请查看 Protocol Buffer Language Guide,  C# API Reference,  C# Generated Code Guide和 Encoding Reference.…
proto文件简介 每个元素上的"= 1","= 2"标记标识该字段在二进制编码中使用的唯一"标记" 每个字段有三个可选修饰符 required:必须提供字段的值,否则消息将被视为"未初始化". optional:字段可以设置也可以不设置.如果未设置可选字段值,则使用默认值.对于简单类型,您可以指定自己的默认值,就像我们对示例中的电话号码类型所做的那样.否则,将使用系统缺省值:数字类型为零,字符串为空字符串,bools为fal…
转载自http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流.需要说明的是,Blog的内容并非line by line的翻…
Protocol Buffer技术详解(语言规范) 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流.需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一些不是非常常用的功能并未予以说明,有兴趣的开发者…
转自:http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流.需要说明的是,Blog的内容并非line by line的翻…
Google Protocol Buffer(protobuf)是一种高效且格式可扩展的编码结构化数据的方法.和JSON不同,protobuf支持混合二进制数据,它还有先进的和可扩展的模式支持.protobuf已在大多数软件平台上实现,包括适用于Android的精简Java版. http://developers.google.com/protocol-buffers/上有protobuf文档,下载链接以及安装说明.需要注意的是,Android平台为构建精简版的protobuf,所以不能使用中央…
1.说明 此向导介绍如何使用protocol buffer language创建一个自己的protocolbuffer文件,包括语法与如何通过“.proto”文件生成数据访问的类,此处只介绍proto2,proto3的更多消息点这里. 这是一个参考指南,一步一步功能描述的示例,请访问以下链接,并选择你自己熟悉的开发语言. 2.定义消息类型 首先我们来看一个简单的示例,定义一个searchrequest消息格式,每一个search request有一个query字符串,页码,每页结果数量.以下是定…
1. Protocol Buffer是什么 Protocol Buffer是google旗下的产品,用于序列化与反序列化数据结构,但是比xml更小.更快.更简单,而且能跨语言.跨平台.你可以把你的数据按你的要求结构化,然后可以转化成多种数据流,同时其他语言可以通过不同的流转化成自己熟悉的语言的数据格式.如C++语言开发者,定义了一个User数据结构,java开发者可以把此数据流轻易的转化成java环境下的数据结构. 我们知道json比xml更轻便,风闻json数据大小是xml的1/20,然后pr…
这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 在上一篇文章中,我们展示了protobuf在java中的基本使用方式.而本文将继续深入探究protobuf的编码原理. 主要分为两个部分 第一部分是结合上一篇文章留下的几个伏笔展示protobuf的使用特性 第二部分是分析protobuf的编码原理,解释特性背后的原因 第一部分,Protobuf使用特性 1.不同类型对象的转…
本文来源:http://www.tanhao.me/code/150911.html/ Protocol Buffer(简称Protobuf或PB)是由Google推出的一种数据交换格式,与传统的XML和JSON不同的是,它是一种二进制格式,免去了文本格式转换的各种困扰,并且转换效率也是非常快,由于它的跨平台.跨编程语言的特点,让它越来越普及,尤其是网络数据交换方面日趋成为一种主流. PB目前托管在GitHub,链接地址:https://github.com/google/protobuf,源码…
你为Class外访问private对象而苦恼嘛?你为设计序列化格式而头疼嘛? ——欢迎体验Google Protocol Buffer 面向对象之封装性 历史遗留问题 面向对象中最矛盾的一个特性,就是“封装性”. 在上古时期,大牛们无聊地设计了三种访问域: public.private.protected. 大多数C++初学者都是疑惑的,甚至是对于传统C程序员而言. 在C规范中,没有class(类)的概念,只有struct(结构体)的概念. 面向对象的C++中,尽管将C规范的struct移植过来…
本文转自: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这…
简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数据存储系统. Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格…
上一篇结尾的时候问了几个问题,其实主要就是这个protoBuffer协议的语法,弄清楚语法后边才好开展工作嘛,不然大眼而对小眼儿,互相不认识,就没法玩耍了.其实就是学习怎么用google提供的这套 protocol buffer language 来组织我用的数据,那个神奇的proto文件的来龙去脉也得搞搞清楚. 好吧,还是看个例子,也是官方的: message SearchRequest { required ; optional int32 page_number = ; optional…
XML这种属于非常强大的一种格式,能存储任何你想存的数据,而且编辑起来还是比较方便的.致命的缺陷在于比较庞大,在某些情况下,序列化和解析都会成为瓶颈.这种对于实时性很强的应用来说,就不太适合了,想象下,设备正在紧张地进行运算,这时候来了一个解析XML任务,如果恰好这个XML比较大,那么势必产生卡顿,这个就会导致很糟糕的体验了. 二进制格式应该说很普遍的应用了,大家按照字节序列对好,编码和解码都不会有太大问题,但是几乎没什么扩展性,只要一方的格式变了,就得重新对消息,想象下一个有几十个字段的消息,…
以下内容主要整理自官方文档. 为什么使用 Protocol Buffers .proto文件 Protocol Buffers 语法 编译.proto文件 Protocol Buffers API 枚举和嵌套类 Builders vs. Messages 解析和序列化 Writing A Message Reading A Message 扩展协议 编码 对比XML 和 JSON 数据大小 序列化性能 解析性能 为什么使用 Protocol Buffers 通常序列化和解析结构化数据的几种方式?…
首先说明的是Protocol Buffle是灵活高效的.它的一个很好的优点(很重要的,我认为)就是后向兼容性--当我们扩展了了.proto文件后,我们照样可以用它来读取之前生成的文件. 之前已经写了关于.proto文件定义的相关知识,见http://www.cnblogs.com/yinheyi/p/6080244.html,现在写基于C语言的Ggoogle Protocol Buffer的使用. 下面的例子,为了实现我们的一个应用 :通讯录,它包含一个人的名字,ID,电子邮件,联系电话,并实现…
什么是protocol Buffer呢? Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准. 我理解的就是:它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.方便文件的存储与网络传输. 我们自己就不用定义它们的存储与传输协议了. 怎么使用protobuf呢? 第一步, 写一个proto的文件 .定义你需要的数据结构. 每二步, 使用你想要用的语言的proto文件编译器把写的proto文件编译为目标语…
From: http://www.zhihu.com/question/20279489 Google的protocol buffers?这个跟corba.soa没啥关系,不同层次的概念,没法比.protocol buffer:一种序列化协议.corba:对象间分布式通讯协议.SOA:一种架构风格/方式. -------------------- CORBA是对象管理集团(OMG)的一个标准,使得不同语言编写的,运行在不同计算机上的能够协同工作.标准包括分布式计算的通讯协议(GIOP和IIOP)…
下载与说明:https://github.com/google/protobuf Google Protocol Buffer 的使用和原理:http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ 安装: $ ./autogen.sh $ ./configure --prefix=/usr/local/protocolbuf $ make $ make check $ make install 问题:1.aclocal安装automake: yu…
首先先简单介绍下hessian ,protocol buffer, easyUI框架 hessian: Hessian是一个轻量级的remoting on http工具,采用的是Binary RPC协议,所以它很适合于发送二进制数据,同时又具有防火墙穿透能力.Hessian一般是通过Web应用来提供服务,因此非常类似于平时我们用的 WebService.只是它不使用SOAP协议,但相比webservice而言更简单.快捷.Hessian官网:http://hessian.caucho.com/…
在caffe框架中,使用的数据格式是google的 protocol buffer.对这个不了解,所以,想简单学习一下.简单来说,Protocol Buffer 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化和反序列化.一提到序列化就想到了JSON,不错,两者很相似.如果对JSON不熟悉,那么XML应该知道吧.由于它是一种二进制的格式,比使用 xml 进行数据交换快许多.可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换.作为一种效率和兼容性都很优秀的二进制数据传输格式,…
Protocol Buffer技术详解(数据编码) 之前已经发了三篇有关Protocol Buffer的技术博客,其中第一篇介绍了Protocol Buffer的语言规范,而后两篇则分别基于C++和Java给出了一些相对比较实用而又简单的示例.由于近期工作压力很大,因此对于是否继续写本篇博客也确实让我纠结了几天.但每每想到善终如始则无败事这句话时,最终的决定还是既然开始了,就要尽自己最大的努力去做,而不要留有丝毫的遗憾.      该篇Blog的内容将完全取自于Google的官方文档,只是为一些…
Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发团队中目前主要使用的开发语言就是C++.Java和Python,其中Python主要用于编写各种工具程序.然而为了保证该篇Blog的完整性和独立性,我仍然会将上一篇Blog中已经出现的内容再一次赘述,同时对于Java中特有的部分也会着重介绍.          一.生成目标语言代码.      下面…
Protocol Buffer技术详解(C++实例) 这篇Blog仍然是以Google的官方文档为主线,代码实例则完全取自于我们正在开发的一个Demo项目,通过前一段时间的尝试,感觉这种结合的方式比较有利于培训和内部的技术交流.还是那句话,没有最好的,只有最适合的.我想写Blog也是这一道理吧,不同的技术主题可能需要采用不同的风格.好了,还是让我们尽早切入主题吧.          一.生成目标语言代码.      下面的命令帮助我们将MyMessage.proto文件中定义的一组Protoco…
Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffe…
Google Protocol Buffer 使用到了两种编码方式:Varints 和 zigzag. 一 Varints 编码 每个 byte 只用 7bit 表示数字,最高位 bit作为标志位,如果为: 1,表示后续的 byte 也是该数字的一部分: 0,表示结束. 因此值越小的数字使用越少的字节数.例如小于 128 的数只需要用一个 byte 表示. 1: 0000 0001 128: 0111 1111 129: 1000 0001 0111 1111 二 Zigzag 编码 负数最高位…