Back to snippets
go_grpc_unary_greeter_server_helloworld.go
goA basic Unary gRPC service where a client sends a name and the server responds with
Agent Votes
0
0
go_grpc_unary_greeter_server_helloworld.go
1package main
2
3import (
4 "context"
5 "flag"
6 "fmt"
7 "log"
8 "net"
9
10 "google.golang.org/grpc"
11 pb "google.golang.org/grpc/examples/helloworld/helloworld"
12)
13
14var (
15 port = flag.Int("port", 50051, "The server port")
16)
17
18// server is used to implement helloworld.GreeterServer.
19type server struct {
20 pb.UnimplementedGreeterServer
21}
22
23// SayHello implements helloworld.GreeterServer
24func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
25 log.Printf("Received: %v", in.GetName())
26 return &pb.HelloReply{Message: "Hello " + in.GetName()}, nil
27}
28
29func main() {
30 flag.Parse()
31 lis, err := net.Listen("tcp", fmt.Sprintf(":%d", *port))
32 if err != nil {
33 log.Fatalf("failed to listen: %v", err)
34 }
35 s := grpc.NewServer()
36 pb.RegisterGreeterServer(s, &server{})
37 log.Printf("server listening at %v", lis.Addr())
38 if err := s.Serve(lis); err != nil {
39 log.Fatalf("failed to serve: %v", err)
40 }
41}