public MyTcpClient() { messageDue = new SimpleMessageDispatcher(); messageDue.OnReceieveMessage += MessageDue_OnReceieveMessage;; var config = new AsyncTcpSocketClientConfiguration(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse(serverIP), serverPort); _client = new AsyncTcpSocketClient(remoteEP, messageDue, config); _client.Connect().Wait(); }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new AsyncTcpSocketClientConfiguration(); //config.UseSsl = true; //config.SslTargetHost = "Cowboy"; //config.SslClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate2(@"D:\\Cowboy.cer")); //config.SslPolicyErrorsBypassed = false; IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new AsyncTcpSocketClient(remoteEP, new SimpleMessageDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") { break; } Task.Run(async() => { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } _client.Close().Wait(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get <Program>().Error(ex.Message, ex); } Console.ReadKey(); }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new AsyncTcpSocketClientConfiguration(); //config.UseSsl = true; //config.SslTargetHost = "Cowboy"; //config.SslClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate2(@"D:\\Cowboy.cer")); //config.SslPolicyErrorsBypassed = false; IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new AsyncTcpSocketClient(remoteEP, new SimpleMessageDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") break; Task.Run(async () => { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } _client.Close().Wait(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get<Program>().Error(ex.Message, ex); } Console.ReadKey(); }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new AsyncTcpSocketClientConfiguration(); //config.UseSsl = true; //config.SslTargetHost = "Cowboy"; //config.SslClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate2(@"D:\\Cowboy.cer")); //config.SslPolicyErrorsBypassed = false; //config.FrameBuilder = new FixedLengthFrameBuilder(20000); //config.FrameBuilder = new RawBufferFrameBuilder(); //config.FrameBuilder = new LineBasedFrameBuilder(); //config.FrameBuilder = new LengthPrefixedFrameBuilder(); //config.FrameBuilder = new LengthFieldBasedFrameBuilder(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new AsyncTcpSocketClient(remoteEP, new SimpleMessageDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") { break; } Task.Run(async() => { if (text == "many") { text = new string('x', 8192); for (int i = 0; i < 1000000; i++) { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); } } else if (text == "big1k") { text = new string('x', 1024 * 1); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big10k") { text = new string('x', 1024 * 10); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big100k") { text = new string('x', 1024 * 100); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big1m") { text = new string('x', 1024 * 1024 * 1); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big10m") { text = new string('x', 1024 * 1024 * 10); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big100m") { text = new string('x', 1024 * 1024 * 100); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big1g") { text = new string('x', 1024 * 1024 * 1024); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } }); } catch (Exception ex) { Logger.Get <Program>().Error(ex.Message, ex); } } _client.Close().Wait(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get <Program>().Error(ex.Message, ex); } Console.ReadKey(); }
private async Task PerformTcpSocketLoad(int connections, IPEndPoint remoteEP) { var channels = new List <AsyncTcpSocketClient>(); var configuration = new AsyncTcpSocketClientConfiguration(); configuration.SslEnabled = _options.IsSetSsl; configuration.SslPolicyErrorsBypassed = _options.IsSetSslPolicyErrorsBypassed; configuration.SslTargetHost = _options.SslTargetHost; configuration.SslClientCertificates = _options.SslClientCertificates; for (int c = 0; c < connections; c++) { var client = new AsyncTcpSocketClient(remoteEP, onServerDataReceived: async(s, b, o, l) => { await Task.CompletedTask; }, onServerConnected: async(s) => { await Task.CompletedTask; }, onServerDisconnected: async(s) => { await Task.CompletedTask; }, configuration: configuration); try { _logger(string.Format("Connecting to [{0}].", remoteEP)); await client.Connect(); channels.Add(client); _logger(string.Format("Connected to [{0}] from [{1}].", remoteEP, client.LocalEndPoint)); } catch (Exception ex) when(!ShouldThrow(ex)) { if (ex is AggregateException) { var a = ex as AggregateException; if (a.InnerExceptions != null && a.InnerExceptions.Any()) { _logger(string.Format("Connect to [{0}] error occurred [{1}].", remoteEP, a.InnerExceptions.First().Message)); } } else { _logger(string.Format("Connect to [{0}] error occurred [{1}].", remoteEP, ex.Message)); } if (client != null) { await client.Close(); } } } if (_options.IsSetChannelLifetime && channels.Any()) { await Task.Delay(_options.ChannelLifetime); } foreach (var client in channels) { try { _logger(string.Format("Closed to [{0}] from [{1}].", remoteEP, client.LocalEndPoint)); await client.Close(); } catch (Exception ex) when(!ShouldThrow(ex)) { if (ex is AggregateException) { var a = ex as AggregateException; if (a.InnerExceptions != null && a.InnerExceptions.Any()) { _logger(string.Format("Closed to [{0}] error occurred [{1}].", remoteEP, a.InnerExceptions.First().Message)); } } else { _logger(string.Format("Closed to [{0}] error occurred [{1}].", remoteEP, ex.Message)); } } } }