aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/csharp/GreeterServer/Program.cs
blob: 9482797c3b96e5b2ae2f960471a1df3ee97cde1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Threading.Tasks;
using Grpc.Core;
using helloworld;

namespace GreeterServer
{
    class GreeterImpl : Greeter.IGreeter
    {
        // Server side handler of the SayHello RPC
        public Task<HelloReply> SayHello(ServerCallContext context, HelloRequest request)
        {
            var reply = new HelloReply.Builder { Message = "Hello " + request.Name }.Build();
            return Task.FromResult(reply);
        }
    }

    class ServerMainClass
    {
        public static void Main(string[] args)
        {
            GrpcEnvironment.Initialize();

            Server server = new Server();
            server.AddServiceDefinition(Greeter.BindService(new GreeterImpl()));
            int port = server.AddListeningPort("localhost", 50051);
            server.Start();

            Console.WriteLine("Greeter server listening on port " + port);
            Console.WriteLine("Press any key to stop the server...");
            Console.ReadKey();

            server.ShutdownAsync().Wait();
            GrpcEnvironment.Shutdown();
        }
    }
}