启动server端

  1. type Server struct {
  2. proto.UnimplementedHelloServer
  3. }
  4. func (s *Server) Hello(ctx context.Context, in *proto.HelloRequest) (*proto.HelloResponse,
  5. error) {
  6. return &proto.HelloResponse{
  7. Reply: in.Name + " I'm fine!",
  8. }, nil
  9. }
  10. func main() {
  11. // 1.新建一个serve
  12. s := grpc.NewServer()
  13. // 2.注册服务
  14. proto.RegisterHelloServer(s, &Server{})
  15. // 3. 监听端口
  16. listener, err := net.Listen("tcp", ":8080")
  17. if err != nil {
  18. panic("failed to listen: " + err.Error())
  19. }
  20. _ = s.Serve(listener)
  21. }

使用client端调用

  1. func main() {
  2. // 1.建立连接
  3. conn, err := grpc.Dial(":8080", grpc.WithInsecure())
  4. if err != nil {
  5. panic(err)
  6. }
  7. // 2.defer关闭连接
  8. defer conn.Close()
  9. // 3.创建client
  10. client := proto.NewHelloClient(conn)
  11. // 4.调用方法
  12. res, _ := client.Hello(context.Background(), &proto.HelloRequest{
  13. Name: "Chan",
  14. Age: 19,
  15. Courses: []string{
  16. "golang",
  17. },
  18. })
  19. fmt.Println("res", res)
  20. }