Example #1
0
        static void Main(string[] args)
        {
            int         port     = 8888;
            IPAddress   ipAdd    = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(ipAdd, port);

            var clients = ClientConnectionHandler.FromListener(listener);
            var disp    =
                clients
                .Do(cl =>
            {
                Console.WriteLine($"Connection From: '{cl.Client.RemoteEndPoint}'");
                SendMessage(cl, $"Hello: {cl.Client.RemoteEndPoint}");
            })
                .Select(cl => ClientMessageHandler.FromClient(cl))
                .Merge()
                .Do(msg =>
            {
                ProcessClientMessage(msg);
            },
                    err =>
            {
                Console.WriteLine($"Error Occurred: {err.Message}");
            })
                .Retry()
                .Subscribe();


            Console.WriteLine($"Waiting for connection on: {port}");
            Console.WriteLine("Enter 'q' to quit");
            Console.ReadLine();

            disp.Dispose();
        }