using EonaCat.Connections; using EonaCat.Connections.Models; namespace EonaCat.Connections.Client.Example { public class Program { private static NetworkClient _client; public static void Main(string[] args) { for (int i = 0; i < 100000; i++) { CreateClientAsync(i).ConfigureAwait(false); } while (true) { Console.Write("Enter message to send (or 'exit' to quit): "); var message = Console.ReadLine(); if (!string.IsNullOrEmpty(message) && message.Equals("exit", StringComparison.OrdinalIgnoreCase)) { _client.DisconnectAsync().ConfigureAwait(false); break; } if (!string.IsNullOrEmpty(message)) { _client.SendAsync(message).ConfigureAwait(false); } } } private static async Task CreateClientAsync(int i) { var config = new Configuration { Protocol = ProtocolType.TCP, Host = "127.0.0.1", Port = 8080, UseSsl = true, UseAesEncryption = true, ServerCertificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("client.pfx", "p@ss"), }; _client = new NetworkClient(config); // Subscribe to events _client.OnConnected += (sender, e) => Console.WriteLine($"Connected to server at {e.RemoteEndPoint}"); _client.OnDataReceived += (sender, e) => Console.WriteLine($"Server says: {(e.IsBinary ? $"{e.Data.Length} bytes" : e.StringData)}"); _client.OnDisconnected += (sender, e) => Console.WriteLine("Disconnected from server"); await _client.ConnectAsync(); // Send nickname await _client.SendNicknameAsync($"TestUser{i}"); // Send a message await _client.SendAsync("Hello server!"); } } }