Go:grpc

Go:grpc,第1张

概述一、grpc安装 将 https://github.com/google/go-genproto 放到 $GOPATH/src/google.golang.org/genproto将 https://github.com/grpc/grpc-go 放到 $GOPATH/src/google.golang.org/grpc将 https://github.com/golang/t 一、grpc安装
将 https://github.com/Google/go-genproto 放到 $GOPATH/src/Google.golang.org/genproto将 https://github.com/grpc/grpc-go       放到 $GOPATH/src/Google.golang.org/grpc将 https://github.com/golang/text        放到 $GOPATH/src/golang.org/x/text将 https://github.com/golang/net         放到 $GOPATH/src/golang.org/x/net然后cd $GOPATH/src/ go install Google.golang.org/grpc

PS:protobuf的安装不做介绍。

二、grpc的helloworld示例

服务端:

package mainimport (    "context"    "log"    "net"    "Google.golang.org/grpc"    pb "Google.golang.org/grpc/examples/helloworld/helloworld")const (    port = ":8080")// server用于实现helloworld.GreeterServertype server struct{}// SayHello实现了helloworld.GreeterServerfunc (s *server) SayHello(ctx context.Context,in *pb.HelloRequest) (*pb.HelloReply,error) {    log.Printf("Received: %v",in.name)    return &pb.HelloReply{Message: "Hello " + in.name},nil}func main() {    // 监听    lis,err := net.Listen("tcp",port)    if err != nil {        log.Fatalf("Failed to Listen: %v",err)    }    // new服务对象    s := grpc.NewServer()    // 注册服务    pb.RegisterGreeterServer(s,&server{})    if err := s.Serve(lis); err != nil {        log.Fatalf("Failed to serve: %v",err)    }}
VIEw Code

客户端:

package mainimport (    "context"    "log"    "time"    "Google.golang.org/grpc"    // 引用编译好的protobuf文件    pb "Google.golang.org/grpc/examples/helloworld/helloworld")const (    address     = "localhost:8080"    name = "World")func main() {    // 建立与服务器的连接    conn,err := grpc.Dial(address,grpc.WithInsecure())    if err != nil {        log.Fatalf("连接失败: %v",err)    }    defer conn.Close()    // 调用protobuf的函数创建客户端连接句柄    c := pb.NewGreeterClIEnt(conn)    ctx,cancel := context.WithTimeout(context.Background(),time.Second)    defer cancel()    // 调用protobuf的SayHello函数    r,err := c.SayHello(ctx,&pb.HelloRequest{name: name})    if err != nil {        log.Fatalf("调用SayHello失败: %v",err)    }    log.Println(r.Message)}
VIEw Code 总结

以上是内存溢出为你收集整理的Go:grpc全部内容,希望文章能够帮你解决Go:grpc所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存