关于Protobuf在使用中的一些注意点

Protobuf是谷歌旗下的一款二进制序列化协议

协议的编写 在项目中新建一个xxx.proto文件

文件的格式

第一行写protobuf的版本 syntax = "proto3" ;

第二行写 包的名字 在C#中就说命名空间的名字,避免重复 例如 package Test;

接下来写协议内容 例如以下示例 关于protobuf的具体语法大家 自行百度

message LoginExample //message 在后面编译的时候会自动的生成一个类

{

int32 loginid =1;

string loginname =2;

optional string loginInfo =3; //optional 代表的可选的 ,意味着传真的时候可以传 可以补传

repeated int32 account = 4; // repeated 代表数组

}

接下来是proto 协议的编译,这里以C# 为例

首先确保你电脑的开发环境中含有protoc.exe 这个可执行文件 ,如果没有去Nuget一个,然后自行去安装(记得百度怎么配置环境变量)

在有protoc.exe 的情况下,找到刚刚写的xxx.proto文件的物理文件夹 ,在这里打开cmd

在刚打开的Dos窗口下 输入命令 protoc --csharp__out=编译生成的cs文件地址 (空格) 要编译的文件地址(因为我们就在这个物理磁盘下 所以直接就是 ./xxx.proto)

示例 protoc --csharp_out=../ ./test.proto 就是编译后的test.proto 放在 上一级的目录(../ 代表上级目录) 输入回车之后 就会发现在上级目录产生一个test.cs

相关推荐
十五年专注C++开发11 天前
C++ 序列化 Protocol Buffers:高效数据交换
开发语言·c++·序列化·反序列化·protobuf
喵了几个咪11 天前
统一范式:中后台Admin项目标准化API分层开发方案(Vue/React通用)
前端·vue.js·react.js·protobuf
明月_清风11 天前
二进制序列化入门——为什么二进制比文本更快、更小?
后端·protobuf·messagepack
love530love22 天前
ComfyUI MediaPipe 猴子补丁终极完善版:补全上下文管理与姿态检测兼容
人工智能·windows·python·comfyui·protobuf·mediapipe
Maguyusi1 个月前
Ubuntu26.04 编译 abseil-cpp protobuf v33.6
linux·protobuf·abseil
猫吻鱼1 个月前
【笔记03】【Grpc 和 Protobuf】
grpc·protobuf
xiaodaoluanzha1 个月前
golang中MetaMessage(mm)的使用
json·protobuf
小堃学编程2 个月前
【项目实战】基于protobuf的发布订阅式消息队列(4)—— 服务端
c语言·c++·vscode·消息队列·gtest·protobuf·muduo
遇事不決洛必達2 个月前
某方数据库protobuf详解
爬虫·python·protobuf
Albert Edison2 个月前
【ProtoBuf 语法详解】选项 option
开发语言·c++·序列化·反序列化·protobuf