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