public static void Run() { var localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5150); var server = new W.Net.SecureEchoServer(); server.Start(localEndPoint); for (int t = 0; t < 5; t++) { var mre = new ManualResetEventSlim(false); var client = new W.Net.SecureClient <string>(); client.MessageReceived += (c, message) => { Console.WriteLine("Received {0}", message); mre.Set(); }; bool connected = client.Socket.ConnectAsync(localEndPoint.Address, localEndPoint.Port).Result; if (connected) { client.Send(string.Format("Message: {0}", t)); if (!mre.Wait(30000)) { Console.WriteLine("Waiting for server timed out."); } client.Socket.Disconnect(); } client.Dispose(); mre.Dispose(); } server.Stop(); server.Dispose(); }
public static void Run() { var mre = new ManualResetEvent(false); using (var server = new W.Net.SecureServer <W.Net.SecureClient <string> >()) { server.ClientConnected += client => { client.Socket.UseCompression = true; Console.WriteLine("Client Connected To Server"); client.MessageReceived += (proxy, message) => { if (!string.IsNullOrEmpty(message.As <string>())) { Console.WriteLine("Server Echo: " + message); proxy.As <W.Net.SecureClient <string> >().Send(message.As <string>().ToUpper()); } }; }; server.ClientDisconnected += (client, remoteEndPoint, exception) => { if (exception != null) { Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString() + " - " + exception.Message); } else { Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString()); } }; server.Start(IPAddress.Parse("127.0.0.1"), 5150); using (var secureClient = new W.Net.SecureClient <string>()) { secureClient.Connected += (ssc, remoteEndPoint) => { Console.WriteLine("Client Connected: " + remoteEndPoint?.ToString()); }; secureClient.Connected += (scc, ep) => { mre.Set(); }; secureClient.Disconnected += (scc, remoteEndPoint, exception) => { if (exception != null) { Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString() + " - " + exception.Message); } else { Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString()); } mre.Set(); }; secureClient.MessageReceived += (s, message) => { Console.WriteLine("Client Received: " + message); Console.Write("Send <Return To Exit>: "); }; //secureClient.MessageSent += (c, message) => //{ // Console.WriteLine("Client Message Sent"); //}; secureClient.Socket.UseCompression = true; secureClient.Socket.ConnectAsync("127.0.0.1", 5150).Wait(); mre.WaitOne(); Console.Write("Send <Return To Exit>: "); while (secureClient.Socket.IsConnected) { var message = Console.ReadLine(); if (string.IsNullOrEmpty(message)) { break; } secureClient.Send(message); } } } }
public static async void Run() { var mre = new ManualResetEvent(false); using (var server = new W.Net.SecureServer <W.Net.SecureClient <string> >()) { server.ClientConnected += client => { Console.WriteLine("Server Connected To Client: " + client.As <W.Net.SecureClient <string> >().Socket.Name); client.MessageReceived += (proxy, message) => { if (!string.IsNullOrEmpty(message.As <string>())) { Console.WriteLine("Server Echo: " + message); proxy.As <W.Net.SecureClient <string> >().Send(message.As <string>().ToUpper()); } }; }; server.ClientDisconnected += (client, remoteEndPoint, exception) => { if (exception != null) { Console.WriteLine("Client Disconnected: " + client.As <W.Net.SecureClient <string> >().Socket.Name + " - " + exception.Message); } else { Console.WriteLine("Client Disconnected: " + client.As <W.Net.SecureClient <string> >().Socket.Name); } Console.WriteLine("Server Disconnected From: " + remoteEndPoint?.ToString()); }; server.Start(IPAddress.Parse("127.0.0.1"), 5150); using (var client = new W.Net.SecureClient <string>()) { client.Connected += (ssc, remoteEndPoint) => { Console.WriteLine("Client Connected: " + ssc.As <W.Net.SecureClient <string> >().Socket.Name); }; client.Connected += (ssc, ep) => { mre.Set(); }; client.Disconnected += (ssc, remoteEndPoint, exception) => { if (exception != null) { Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString() + " - " + exception.Message); } else { Console.WriteLine("Client Disconnected: " + remoteEndPoint?.ToString()); } mre.Set(); }; client.MessageReceived += (s, message) => { Console.WriteLine("Client Received: " + message); Console.Write("Send <Return To Disconnect>: "); }; //we can't decrypt the data because we don't have the private key (so we need a better way to track sent data) //client.MessageSent += (c, message) => //{ // Console.WriteLine("Client Message Sent"); //}; for (int t = 0; t < 20; t++) { var connected = client.Socket.ConnectAsync("127.0.0.1", 5150).Result; Console.WriteLine("Connected = {0}", connected); mre.WaitOne(); client.Socket.Disconnect(); //Console.WriteLine("Disconnected"); } 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(true); }
public static void Run() { var mre = new ManualResetEvent(false); using (var server = new W.Net.SecureServer <W.Net.SecureClient <string> >()) { server.ClientConnected += client => { Console.WriteLine("Server Connected To Client: " + client.Socket.Name); client.DataReceived += (s, message) => { Console.WriteLine("Server Received Data: " + message?.AsString() ?? "null"); }; client.MessageReceived += (c, message) => { if (!string.IsNullOrEmpty(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.SecureClient <string>()) { client.Connected += (c, remoteEndPoint) => { Console.WriteLine("Client Connected: " + c.Socket.Name); }; client.Connected += (ssc, 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.DataReceived += (s, message) => { Console.WriteLine("Client Received Data: " + message.AsString()); //Console.Write("Send <Return To Disconnect>: "); }; client.MessageReceived += (c, message) => { Console.WriteLine("Client Received Message: " + message); Console.Write("Send <Return To Disconnect>: "); }; //client.DataSent += (s, 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(); }