Exemple #1
0
        private static void SelfHost()
        {
            ManualResetEventSlim mre        = new ManualResetEventSlim(true);
            IPEndPoint           ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2212);

            using (var server = new W.Net.Server <W.Net.Client <string> >())
            {
                server.ClientConnected += client =>
                {
                    client.As <W.Net.Client <string> >().MessageReceived += (o, message) =>
                    {
                        Console.WriteLine(message);
                        mre.Set();
                    };
                };
                server.Start(ipEndPoint.Address, ipEndPoint.Port);

                //To verify this method, an external server must be listening
                using (var logger = new W.Net.StringClientLogger(ipEndPoint))
                {
                    var r = new Random();
                    while (true)
                    {
                        mre.Wait();
                        Console.Write("Send <Return to Exit>:");
                        var msg = Console.ReadLine().Trim();
                        if (string.IsNullOrEmpty(msg))
                        {
                            break;
                        }
                        mre.Reset();

                        switch (r.Next(0, 4))
                        {
                        case 0:
                            W.Logging.Log.e(msg);
                            break;

                        case 1:
                            W.Logging.Log.w(msg);
                            break;

                        case 2:
                            W.Logging.Log.i(msg);
                            break;

                        case 3:
                            W.Logging.Log.v(msg);
                            break;
                        }
                    }
                    Console.WriteLine("Complete");
                }
            }
        }
        public static void Run()
        {
            var mre = new ManualResetEvent(false);

            using (var server = new W.Net.Server <W.Net.Client <Customer> >())
            {
                server.ClientConnected += c =>
                {
                    c.MessageReceived += (o, customer) =>
                    {
                        //increase the age and echo the customer
                        customer.Age += 1;
                        customer.Name = customer.Name.ToUpper();
                        o.As <W.Net.Client <Customer> >().Send(customer);
                    };
                };
                server.Start(IPAddress.Parse("127.0.0.1"), 5150);

                using (var client = new W.Net.Client <Customer>())
                {
                    client.MessageReceived += (o, customer) =>
                    {
                        Console.WriteLine("{0} New Age = {1}", customer.Name, customer.Age);
                        Console.WriteLine("Send <Return To Exit>: ");
                    };
                    client.Connected += (o, ep) =>
                    {
                        mre.Set();
                    };
                    client.Disconnected += (s, remoteEndPoint, exception) =>
                    {
                        mre.Set();
                    };
                    client.Socket.ConnectAsync(IPAddress.Parse("127.0.0.1"), 5150).Wait();
                    mre.WaitOne();

                    Console.WriteLine("Send <Return To Exit>: ");
                    while (client.Socket.IsConnected)
                    {
                        var name = Console.ReadLine();
                        if (string.IsNullOrEmpty(name))
                        {
                            break;
                        }
                        var customer = new Customer()
                        {
                            Name = name, Age = new Random().Next(1, 75)
                        };
                        Console.WriteLine("{0} Age = {1}", customer.Name, customer.Age);
                        client.Send(customer);
                    }
                }
            }
        }
        public static void Run()
        {
            var mre = new ManualResetEvent(false);

            using (var server = new W.Net.Server <W.Net.Client <string> >())
            {
                server.ClientConnected += client =>
                {
                    Console.WriteLine("Server Connected To Client: " + client.Socket.Name);
                    client.MessageReceived += (c, message) =>
                    {
                        Console.WriteLine("Server Echo: " + message);
                        c.Send(message.As <string>().ToUpper());
                    };
                };
                server.ClientDisconnected += (client, remoteEndPoint, exception) =>
                {
                    if (exception != null)
                    {
                        Console.WriteLine("Server Disconnected: " + client.Socket.Name + " - " + exception.Message);
                    }
                    else
                    {
                        Console.WriteLine("Server Disconnected: " + client.Socket.Name);
                    }

                    Console.WriteLine("Server Disconnected From: " + remoteEndPoint?.ToString());
                };
                server.Start(IPAddress.Parse("127.0.0.1"), 5150);

                using (var client = new W.Net.Client <string>())
                {
                    client.Connected += (c, remoteEndPoint) =>
                    {
                        Console.WriteLine("Client Connected: " + c.Socket.Name);
                    };
                    client.Connected += (c, ep) =>
                    {
                        mre.Set();
                    };
                    client.Disconnected += (c, remoteEndPoint, exception) =>
                    {
                        if (exception != null)
                        {
                            Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString() + " - " + exception.Message);
                        }
                        else
                        {
                            Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString());
                        }
                        mre.Set();
                    };
                    client.RawDataReceived += (c, bytes) =>
                    {
                        Console.WriteLine("Client Received Raw: " + bytes?.AsString() ?? "null");
                    };
                    client.MessageReceived += (c, message) =>
                    {
                        Console.WriteLine("Client Received: " + message);
                        Console.Write("Send <Return To Disconnect>: ");
                    };
                    //client.MessageSent += (c, m) =>
                    //{
                    //    Console.WriteLine("Client Message Sent");
                    //};

                    client.Socket.ConnectAsync(IPAddress.Parse("127.0.0.1"), 5150).Wait();
                    mre.WaitOne();

                    Console.Write("Send <Return To Disconnect>: ");
                    while (client.Socket.IsConnected)
                    {
                        var message = Console.ReadLine();
                        if (string.IsNullOrEmpty(message))
                        {
                            break;
                        }
                        client.Send(message);
                    }
                }
            }
            Console.WriteLine("Press Any Key To Return");
            Console.ReadKey();
        }
Exemple #4
0
        public void TestStringClientLogger()
        {
            var received = 0;
            var numberOfMessagesToSend = 10;
            var mreQuit = new System.Threading.ManualResetEvent(false);


            IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("192.168.2.12"), 2213);

            using (var server = new W.Net.Server <W.Net.Client <string> >())
            {
                server.ClientConnected += client =>
                {
                    client.MessageReceived += (c, m) =>
                    {
                        received += 1;
                        Console.WriteLine("Received Message " + received.ToString() + ": " + m);
                        if (received == numberOfMessagesToSend)
                        {
                            mreQuit.Set();
                        }
                    };
                };
                server.Start(ipEndPoint.Address, ipEndPoint.Port);
                Console.WriteLine("Server Started");

                //To verify this method, an external server must be listening
                using (var logger = new W.Net.StringClientLogger(ipEndPoint))
                {
                    var r = new Random();
                    for (int t = 1; t <= numberOfMessagesToSend; t++)
                    {
                        var msg = "Test Log Message: " + t.ToString();
                        switch (r.Next(0, 4))
                        {
                        case 0:
                            W.Logging.Log.e(msg);
                            break;

                        case 1:
                            W.Logging.Log.w(msg);
                            break;

                        case 2:
                            W.Logging.Log.i(msg);
                            break;

                        case 3:
                            W.Logging.Log.v(msg);
                            break;
                        }
                    }
                    if (!mreQuit.WaitOne(10000))
                    {
                        Console.WriteLine("Failed To Receive All Messages");
                    }
                    Console.WriteLine("Completed Logging");
                }
                Console.WriteLine("Complete");
            }
        }