go grpc 1 用proto檔案生成go檔案

2021-10-10 09:57:28 字數 2781 閱讀 8469

安裝外掛程式

go get github.com/golang/protobuf/protoc-gen-go
此時會在gopath的bin目錄下生成可執行檔案.protobuf的編譯器外掛程式protoc-gen-go

執行protoc命令時就會自動呼叫這個外掛程式

test/product/product.proto

syntax=

"proto3"

;// 指定proto版本

package services;

option go_package =

"../services;services"

;// 前乙個services指生成的go檔案的存放目錄,不存在會建立;後乙個services是go檔案的包名

// 定義乙個訊息型別productrequest

message productrequest

message productrespones

建立資料夾test/services

protoc --go_out=

../services product.proto # 根據product.proto檔案生成go檔案,放到../services目錄

protobuf語法

grpc服務

test/product/product.proto

syntax=

"proto3"

;package services;

option go_package =

"../services;services"

;// 前乙個services指生成的go檔案的存放目錄,不存在會建立;後乙個services是go檔案的包名

message productrequest

message productrespones

// 定義服務productservice

service productservice

建立資料夾test/services

protoc --go_out=plugins=grpc:../services product.proto  # 生成go檔案

go get -u google.golang.org/grpc

test/services/productservice.go

/*

* @description:

*/package services

import

( context "context"

)type productservice struct

// 實現 product.pb.go中的介面productserviceserver

func

(this *productservice)

getproductstock

(ctx context.context, in *productrequest)

(*productrespones,

error),

nil}

test/server.go

/*

* @description:

*/package main

import

("net"

"test/services"

"google.golang.org/grpc"

)func

main()

go run server.go
grpc客戶端

把服務端生成的go檔案複製到客戶端來,把test/services/product.pb.go 複製到 grpccli/services/product.pb.go

grpccli/main.go

/*

* @description:grpc客戶端

用python處理excel檔案 1

usr bin env python3 import xlrd book xlrd.open workbook e 研究生學習 python資料 實驗資料 excel檔案實驗資料 sowc 2014 stat tables table 9.xlsx sheet book.sheet by name ...

用nodejs處理檔案上傳 1

1 安裝外部模組node formidable 本模組的具體細節請參考它很好的抽象了解析上傳檔案的細節,使我們可以像處理post資料一樣來處理上傳的檔案。我們用nmp來安裝formidable模組 c users npm install formidable formidable 1.0.15 no...

用socket實現的檔案伺服器 1

public class forumfileclient catch exception e private socket socket private bufferedreader in private printwriter out public forumfileclient catch ex...