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(); }
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"); } }