启动server端
type Server struct {
proto.UnimplementedHelloServer
}
func (s *Server) Hello(ctx context.Context, in *proto.HelloRequest) (*proto.HelloResponse,
error) {
return &proto.HelloResponse{
Reply: in.Name + " I'm fine!",
}, nil
}
func main() {
// 1.新建一个serve
s := grpc.NewServer()
// 2.注册服务
proto.RegisterHelloServer(s, &Server{})
// 3. 监听端口
listener, err := net.Listen("tcp", ":8080")
if err != nil {
panic("failed to listen: " + err.Error())
}
_ = s.Serve(listener)
}
使用client端调用
func main() {
// 1.建立连接
conn, err := grpc.Dial(":8080", grpc.WithInsecure())
if err != nil {
panic(err)
}
// 2.defer关闭连接
defer conn.Close()
// 3.创建client
client := proto.NewHelloClient(conn)
// 4.调用方法
res, _ := client.Hello(context.Background(), &proto.HelloRequest{
Name: "Chan",
Age: 19,
Courses: []string{
"golang",
},
})
fmt.Println("res", res)
}