C# 使用google protocolbuffer协议

简介

google protocolbuffer,google 提供了三种语言的实现:java、c++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。

可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

以下介绍下C#使用protocolbuffer



下载 protobuf-csharp-port-2.4.1.521-release-binaries.zip

http://code.google.com/p/protobuf-csharp-port/



proto 文件

//import "Base.proto"; 添加引用文件方式

message LoginReq
{
required int32 Result = 1;//0:失败,1:成功
optional bytes Cause = 2;
optional bytes guid = 4;//唯一标识请求,可选
}

required 必填项

optional 可选项

repeated list项



协议生成

把下载文件中的protoc.exe、ProtoGen.exe、Google.ProtocolBuffers.dll这些文件和bat文件、proto文件放入同一个文件夹

生成协议bat文件格式:

@echo on
protoc --descriptor_set_out=LoginReq.protobin --include_imports LoginReq.proto
protogen LoginReq.protobin

会在该文件中生成 LoginReq.cs

时间紧急暂时到这,下次再编辑

时间: 2024-07-31 02:33:29

C# 使用google protocolbuffer协议的相关文章

Google ProtocolBuffer(PB) 简介和实例

简介 ProtocolBuffer(PB) 是一种轻便高效的结构化数据存储格式,可以用于结构化数据的序列化. 类似xml和json,但PB比前两者更高效和省空间,在移动开发中更为用户省流量. PB如何做到更省流量的? 这得从它的编码方式来看,PB采用Zigzag 编码并充分利用Varint技术,从而实现二级制级的空间节省. 实例 步骤一, 书写 .proto 文件,这里直接上google官方实例,并存储为addressbook.proto package tutorial; option jav

Google ProtocolBuffer(PB) 简介和实例2-Wire的使用

Wire简介 轻量级的protocol buffers,针对移动设备的java库 (和protoc产生的代码相比较)由Wire生成的代码方法数量将大大减少,这将有助于android应用避免方法数65k的限制 使用方法 下载最近的wire jar包,目前最新的版本是wire-compiler-1.7.0-jar-with-dependencies.jar, github上有下载链接 编写 .proto 文件,这里直接采用上一篇介绍pb时用到的例子 编译 .proto 文件,用wrie生成java类

“刷榜客”-- 手机木马Google Play恶意刷榜

目前,随着应用市场内应用数量爆炸式的增长,App营销和推广的难度也越来越大,刷榜被普遍认为是一种应用推广的最佳捷径,它能够在短期内大幅提高下载量和用户量,进而提高应用的曝光率.曝光率的提升,带来下载量的激增,而激增的下载量又会保证排名靠前,以此呈现出滚雪球式的增长.国内App刷榜市场正逐步发展壮大,并衍生为一条完整的灰色产业链:应用开发者.刷榜服务商已经形成了一个紧密的结构.   近日,百度安全实验室发现了一款专用于恶意刷榜的"刷榜客"手机僵尸木马.该木马内嵌与正常应用中,当用户安装此

【协议分析】HTTP2技术变革的冲击和影响分析

HTTP2技术变革的冲击和影响分析 HTTP2于今年2月28日正式通过IETF组织批准发布,正式定稿,那么什么是HTTP2,HTTP2将给我们带来哪些改变,将对我们的业务和产品产生哪些影响,应用安全研究部的协议分析研究员对此进行了深入的分析. HTTP协议发展及特点 HTTP是往返"浏览器"与"WEB Server"的协议(即:HTTP Protocol). HTTP 0.9 只有基本的文本 GET 功能,具有典型的无状态性,每个事务独立进行处理.事务结束时就释放这

App的网络环境测试和性能优化

1. 网络环境测试一般是先用网络损伤模拟仪或mock工具模拟常见的七种损伤和5种网络环境,然后再国内外城市采样的方式(带宽和延时)组合测试生成报告, 下面是一些统计图 2. 采样点的选择一般都是根据自己server收集的用户信息.如果新app就要参考近品/竞品或第三方的统计数据拍脑袋 3. 从测试的角度,应该建立实时监控的web portal.其实测试的目的除了保证产品发布的质量.更重要的是为优化提供依据,所以report最后一部分都是issue list 和optmize advice,当然测

HDFS序列化

序列化 1)什么是序列化 将结构化对象转换成字节流以便于进行网络传输或写入持久存储的过程. 2)什么是反序列化 将字节流转化为一系列结构化对象的过程. 序列化的用途 1)作为一种持久化格式 2)作为一种通信的数据格式 3)作为一种数据拷贝.克隆机制 序列化的特征: 1)紧凑:Hadoop中最稀缺的资源是宽带,所以紧凑的序列化机制可以充分的利用宽带. 2)快速:通信时大量使用序列化机制,因此,需要减少序列化和反序列化的开销. 3)可扩展:随着通信协议的升级而可升级. 4)互操作:支持不同开发语言的

Hadoop序列化机制及实例

序列化 1.什么是序列化? 将结构化对象转换成字节流以便于进行网络传输或写入持久存储的过程. 2.什么是反序列化? 将字节流转换为一系列结构化对象的过程. 序列化用途: 1.作为一种持久化格式. 2.作为一种通信的数据格式. 3.作为一种数据拷贝.克隆机制. Java序列化和反序列化 1.创建一个对象实现了Serializable 2.序列化:ObjectOutputStream.writeObject(序列化对象) 反序列化:ObjectInputStream.readObject()返回序列

[转]微观SOA:服务设计原则及其实践方式

转了收藏,以后再看... 出处 上:http://kb.cnblogs.com/page/505537/ 下:http://kb.cnblogs.com/page/505538/ 大量互联网公司都在拥抱SOA和服务化,但业界对SOA的很多讨论都比较偏向高大上.本文试图从稍微不同的角度,以相对接地气的方式来讨论SOA,集中讨论SOA在微观实践层面中的缘起.本质和具体操作方式,另外也用相当篇幅介绍了当今互联网行业中各种流行的远程调用技术等等,比较适合从事实际工作的架构师和程序员来阅读. 为了方便阅读

building hadoop2.4.1 on centos7[在centos7上面构建hadoop2.4.1]

本文介绍在centos7上面通过hadoop2.4.1源码构建hadoop distribution 版本,即hadoop的运行版本. 为何要自己building,而不用Apache的distribution [bin]版本,因为hadoop涉及到Linux系统的底层实现,如: hadoop fs -ls / 通过 java Native 实现,故应为 native的相关lib.[个人认为的一点] 相关文件下载链接: 文件目录解释: hadoop hadoop-2.4.1.tar.gz 本人通过