Back to snippets

grpc_greeter_server_unary_rpc_helloworld_go.go

go

A basic unary RPC example where a client sends a name to a server and receives a gr

19d ago42 linesgrpc.io
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}