Protobuf 3.3 使用总结

1.下载可执行文件 protoc.exe
https://github.com/google/protobuf/releases/
里的protoc-3.3.0-win32.zip,解压拿到protoc.exe
最方便的方式通过NuGet包管理器,安装 Google.Protobuf 3.3.0 和 Google.Protobuf.Tools 3.3.0,这个包含了预编译的protoc.exe和和在tool下的一堆.proto文件。下载前要求.net框架为.NET 4.5+
生成的Google.ProtocolBuffers.dll将被用作外部链接的DLL使用
为了产生C#文件,带上--csharp_out 选项 执行protoc ,目前支持 C++,C#,java,javanano,php,,js,objectc,python,ruby

2.制作run.bat文件

@echo off
set "TOOLPATH=%cd%/protoc.exe"
cd ../
%TOOLPATH%  --csharp_out=src/com/ooxx/common/proto --proto_path=src/com/ooxx/common/proto src/com/ooxx/common/proto/game.proto


protoc  参数说明:
--csharp_out =out_dir 导出文件的目录
--proto_path proto文件所在目录

3.option optimize_for = SPEED;
optimize_for是文件级别的选项,Protocol Buffer定义三种优化级别SPEED/CODE_SIZE/LITE_RUNTIME。缺省情况下是SPEED。
SPEED: 表示生成的代码运行效率高,但是由此生成的代码编译后会占用更多的空间。
CODE_SIZE: 和SPEED恰恰相反,代码运行效率较低,但是由此生成的代码编译后会占用更少的空间,通常用于资源有限的平台,如Mobile。

LITE_RUNTIME: 生成的代码执行效率高,同时生成代码编译后的所占用的空间也是非常少。这是以牺牲Protocol Buffer提供的反射功能为代价的。

4:option java_multiple_files=true; 让每个消息都独立生成文件,减少单个文件的大小

服务端打印字节流工具

ByteBufUtil.prettyHexDump(ByteBuf buffer);

         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 05 08 a4 06 10 02                               |......          |
+--------+-------------------------------------------------+----------------+

         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 47 08 c5 d6 1b 10 02 1a 3f bd bf 10 90 96 df 12 |G.......?.......|
|00000010| 8c 08 63 ee f3 ac 02 2b fe c9 11 c0 35 df 4d 1a |..c....+....5.M.|
|00000020| 1f 53 ec 31 cc 32 ec 33 ca 44 eb 44 ec 32 ec 20 |.S.1.2.3.D.D.2. |
|00000030| ef 28 ef 30 63 ee f3 ac 02 2b 5c 0c 91 88 e6 e7 |.(.0c....+\.....|
|00000040| 77 b1 b1 b8 25 e5 46 0a                         |w...%.F.        |
+--------+-------------------------------------------------+----------------+

字符串进行16进制加密传输


 buffer.writeBytes(ByteBufUtil.decodeHexDump(phone20Str(phoneNum)));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值