您现在的位置是:主页 > news > 常德做网站多少钱/朋友圈产品推广文案

常德做网站多少钱/朋友圈产品推广文案

admin2025/5/18 1:48:56news

简介常德做网站多少钱,朋友圈产品推广文案,网站的线下推广怎么做,广州平台网站建设目录 1、获取gRPC和Protobuf依赖 2、安装protobuf编译器 3、安装两个插件 4、编译proto文件 5、服务端 6、客户端 7、结果展示 1、获取gRPC和Protobuf依赖 go get github.com/golang/protobuf/proto go get google.golang.org/grpc go get github.com/golang/protobuf/pr…

常德做网站多少钱,朋友圈产品推广文案,网站的线下推广怎么做,广州平台网站建设目录 1、获取gRPC和Protobuf依赖 2、安装protobuf编译器 3、安装两个插件 4、编译proto文件 5、服务端 6、客户端 7、结果展示 1、获取gRPC和Protobuf依赖 go get github.com/golang/protobuf/proto go get google.golang.org/grpc go get github.com/golang/protobuf/pr…

目录

1、获取gRPC和Protobuf依赖

2、安装protobuf编译器

3、安装两个插件

 4、编译proto文件

5、服务端

6、客户端

7、结果展示


1、获取gRPC和Protobuf依赖

go get github.com/golang/protobuf/proto
go get google.golang.org/grpc
go get github.com/golang/protobuf/protoc-gen-go

goLand配置

2、安装protobuf编译器

Release Protocol Buffers v21.6 · protocolbuffers/protobuf · GitHubProtocol Buffers - Google's data interchange format - Release Protocol Buffers v21.6 · protocolbuffers/protobufhttps://github.com/protocolbuffers/protobuf/releases/tag/v21.6下载

 创建文件夹

sudo mkdir /usr/local/proto
unzip protoc-21.6-linux-x86_64.zip

配置环境变量

sudo vi /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:/usr/local/proto/bin
export PATH=$PATH:/usr/local/proto/include
export PATH=$PATH:/home/cjs/go/bin

再执行下面命令,然后重启

source /etc/profile

重启之后,检查时候成功

protoc --version

3、安装两个插件

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

 4、编译proto文件

目录结构:

 proto文件

syntax = "proto3"; // 指定proto版本
package hello;     // 指定默认包名// 指定golang包名
option go_package = "./hello";// 定义Hello服务
service Hello {// 定义SayHello方法rpc SayHello(HelloRequest) returns (HelloResponse) {}
}// HelloRequest 请求结构
message HelloRequest {string name = 1;
}// HelloResponse 响应结构
message HelloResponse {string message = 1;
}

进入下面文件夹下:

 然后执行

protoc --go_out=./ --go_opt=paths=source_relative --go-grpc_out=./ --go-grpc_opt=paths=source_relative hello.proto

生成

5、服务端

package mainimport ("fmt""net"pb "awesomeProject/proto/hello" // 引入编译生成的包"golang.org/x/net/context""google.golang.org/grpc""google.golang.org/grpc/grpclog"
)const (// Address gRPC服务地址Address = "127.0.0.1:50052"
)// 定义helloService并实现约定的接口
type HelloService struct {pb.UnimplementedHelloServer
}// SayHello 实现Hello服务接口
func (h HelloService) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloResponse, error) {resp := new(pb.HelloResponse)resp.Message = fmt.Sprintf("Hello %s.", in.Name)fmt.Println(in.Name)return resp, nil
}func main() {listen, err := net.Listen("tcp", Address)if err != nil {grpclog.Fatalf("Failed to listen: %v", err)}// 实例化grpc Servers := grpc.NewServer()// 注册HelloServicepb.RegisterHelloServer(s, &HelloService{})grpclog.Info("Listen on " + Address)str := s.Serve(listen)fmt.Println(str)}

注意:根据自己工程包结构实现

6、客户端

package mainimport (pb "awesomeProject/proto/hello" // 引入proto包"fmt""golang.org/x/net/context""google.golang.org/grpc""google.golang.org/grpc/credentials/insecure""google.golang.org/grpc/grpclog"
)const (// Address gRPC服务地址Address = "127.0.0.1:50052"
)func main() {// 连接conn, err := grpc.Dial(Address, grpc.WithTransportCredentials(insecure.NewCredentials()))if err != nil {grpclog.Fatalln(err)}fmt.Println("连接成功")defer conn.Close()// 初始化客户端c := pb.NewHelloClient(conn)// 调用方法req := &pb.HelloRequest{Name: "gRPC"}res, err := c.SayHello(context.Background(), req)if err != nil {grpclog.Fatalln(err)}fmt.Println(res.Message)grpclog.Info(res.Message)
}

7、结果展示