定义:可序列化的数据交换格式
用途:用于通信协议(数据),数据存储等
特点:语言无关,平台无关,高效,扩展性好。
相近产品:XML/JSON
优点:性能好效率高(存储和转化)、预生成代码(无需编写解析代码)、多语言支持(开源社区)、兼容性好
缺点:国内应用较少(跨系统调用不方便)、没有json易读可调试
在VS中的工具->NuGet程序包管理器->程序包管理器控制台,运行命令:
install-Package protobuf-net -Version 1.0.0.280
就能下载对应版本的Protobuf工具到该项目文件夹中,以后可以复制该文件夹到其他项目中使用。
可以自己写一个CMD脚本文件,运行命令时双击文件即可,文件命名为genproto.cmd,内容如下:
"protoc-3.2.0-win32/bin/protogen" --proto_path=../Src/Lib/proto --csharp_out=../Src/Lib/Protocol message.proto
pause
即可在特定位置生成对应的csharp脚本文件。在项目中引用对应的头文件即可使用自己定义的协议。
序列化:将数据结构和对象转换成能够存储和传输的格式。
反序列化:将序列化之后的数据转化为序列化之前的数据结构或对象。
protobuf的数据要经过序列化转换为二进制数据才能在网上传输,对方收到后进行反序列化还原