IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Golang下生成protocol buffers代码以及grpc代码的简单教程 -> 正文阅读

[网络协议]Golang下生成protocol buffers代码以及grpc代码的简单教程

Golang下生成protocol buffers代码以及grpc的简单教程

本教程基于Goland IDE,Golang版本为1.17.4(建议使用1.16以上版本),生成了普通的pb和grpc代码

首先使用Goland创建一个新项目prototech
在这里插入图片描述

接着创建两个目录pbproto,其中proto用来存放初始的.proto文件,pb存放生成的.pb.go源代码

在proto新建一个.proto文件test.proto
在这里插入图片描述

在这里插入图片描述
在test.proto中编辑以下文本

syntax = "proto3";  //protocol buffers的版本
package main;
option go_package = "/pb";   //输出的目标文件位置
message CPU{
  uint32 number_cores = 1;
  uint32 number_threads = 2;
  double max_hz_g = 3;
}

打开Terminal,安装protocol buffers的编译器,也可以直接下载最新的版本

//指定版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1

//最新版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

接着就可以开始编译.proto生成pg.go文件,由于我们的文件结构为:

prototech
-pb
-proto

当前的位置是/prototech,由于在test.proto中指定的go_package = “/pb”,我们可以直接将结果文件输出到pb目录下,通过修改go_package,你也可以自定义输出文件存放的位置
在这里插入图片描述

protoc --go-grpc_out=. proto/test.proto  

可以看到在pb目录下test.pb.go文件已经生成
在这里插入图片描述
如果要生成grpc.pb.go文件,修改一下命令行参数就行

protoc --go-grpc_out=. proto/test.proto

如果无法直接生成grpc.pb.go,可以尝试在test.proto中添加以下代码

syntax = "proto3";
package main;
option go_package = "/pb";
message CPU{
  uint32 number_cores = 1;
  uint32 number_threads = 2;
  double max_hz_g = 3;
}

service HelloService {
  rpc Hello (CPU) returns (CPU);
}

接着继续使用 protoc --go-grpc_out=. proto/test.proto,就能在pb目录下看到了
在这里插入图片描述
此外还可以通过以下方法生成grpc文件,该方法不需要添加HelloService


go get -u google.golang.org/grpc 
protoc --go_out=plugins=grpc:. .\proto\processor_message.proto
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:47:24  更:2022-04-04 12:48:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:21:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码