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)));