package main import ( "context" "flag" "fmt" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "log" pb "madsky.ru/go-finance/proto" "net" ) var port = flag.Int("port", 50051, "the server port") type GrpcServer struct { pb.UnimplementedHelloServer } func (s *GrpcServer) SayHello(_ context.Context, in *pb.HelloRequest) (*pb.HelloResponse, error) { log.Printf("Received: %v", in.GetName()) return &pb.HelloResponse{Message: "Hello " + in.GetName()}, nil } func grpcServer() { flag.Parse() listen, err := net.Listen("tcp", fmt.Sprintf(":%d", *port)) if err != nil { log.Fatalf("failed to listen: %v", err) } s := grpc.NewServer() reflection.Register(s) pb.RegisterHelloServer(s, &GrpcServer{}) log.Printf("server listening at %v", listen.Addr()) if err := s.Serve(listen); err != nil { log.Fatalf("failed to serve: %v", err) } }