启动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)}