public void OnDataReceive2() { // Example receiving for the client ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); const string message = "Hello client!"; int receiveCount = 0; client.OnDataReceive += (sender, receivedMessage) => { //Async lambda, so thread safe increase integer if (message.Equals(receivedMessage.ToString())) { Interlocked.Increment(ref receiveCount); } Console.WriteLine($"[{receiveCount}]Received message: {receivedMessage.ToString()}"); }; server.SendAll(message); server.SendAll(message); TestHelper.WaitWhileTrue(() => receiveCount < 2); Assert.AreEqual(2, receiveCount); }
public async Task Stream1() //Client -> -(Stream)> Server (Client sends message to server) { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); string testData = "123", data = ""; server.OnDataReceiveAsync += async(sender, message) => //Receive stream from client { await using var stream = new MemoryStream(); await message.ReceiveStreamAsync(stream); data = Encoding.UTF8.GetString(stream.ToArray()); }; //Send stream to server await using var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(testData)); client.Send("Stream"); await client.SendStreamAsync(dataStream); TestHelper.WaitWhileTrue(() => data == ""); Assert.AreEqual(testData, data); }
public void Setup() { _port = TestHelper.GetPort(); var server = new EasyTcpServer(); server.Start(_port); }
static void Main(string[] args) { Console.WriteLine("Server starting..."); EasyTcpServer server = new EasyTcpServer(System.Reflection.Assembly.GetExecutingAssembly()); server.OnServerStarted += (sender, s) => { Console.WriteLine("Server started!"); }; server.ClientConnected += (sender, client) => { Console.WriteLine($"Client [{client.RemoteEndPoint.ToString()}] connected!"); }; server.ClientDisconnected += (sender, client) => { Console.WriteLine($"Client [{client.RemoteEndPoint.ToString()}] disconnected!"); }; server.DataReceived += (sender, msg) => { Console.WriteLine($"PacketType: {msg.GetPacket.PacketType}"); server.PacketHandler(msg, false); }; server.OnError += (sender, ex) => { Console.WriteLine($"{ex.Message}\n{ex.StackTrace}"); }; server.Start("127.0.0.1", 6124, 10); Task.Delay(-1).Wait(); }
public void Stream2() //Client -> Server -(Stream)> Client (Client requests stream from server) { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); string testData = "123", data = null; using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); server.OnDataReceive += (sender, message) => //Send stream if client requests { using var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(testData)); message.Client.Send("Stream"); message.Client.SendStream(dataStream); }; client.OnDataReceive += (sender, message) => //Receive stream from server { using var stream = new MemoryStream(); message.ReceiveStream(stream); data = Encoding.UTF8.GetString(stream.ToArray()); }; client.Send("GetStream"); //Request stream TestHelper.WaitWhileTrue(() => data == null); Assert.AreEqual(testData, data); }
private static void StartServer(int port) { try { server = new EasyTcpActionServer(); server.Start(Port); bool exit = false; Console.WriteLine($">> Server started on ip: {LocalIP} (public ip adress: {PublicIP})!"); Console.WriteLine($">> Server started listening to port {port}!"); Console.WriteLine(">> Press escape to close the server ..."); while (!exit) { ConsoleKeyInfo key = Console.ReadKey(true); if (key.Key == ConsoleKey.Escape) { exit = true; } } server.Dispose(); Console.WriteLine(Environment.NewLine + ">> Server closed! Press any key to close the window ..."); Console.ReadKey(true); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void Start4() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); }
public void Setup() { _port = TestHelper.GetPort(); var server = new EasyTcpServer(); server.Start(_port); server.OnDataReceive += (sender, message) => message.Client.Send(message.Data); }
public static async Task Start() { using var server = new EasyTcpServer(); var socket = server.BaseSocket; // Get baseSocket, null when server is disposed // Start server on given port (default address: "0.0.0.0") server.Start(Port); // Start server on given port and address server.Start("0.0.0.0", Port); server.Start(IPAddress.Any, Port); // Send message to all connected clients server.SendAll("Hello clients!"); // Get copy of list with connected clients var connectedClientsList = server.GetConnectedClients(); var connectedSocketsList = server.GetConnectedSockets(); // Get amount of connected clients var connectedClientsCount = server.ConnectedClientsCount; server.OnDataReceive += (sender, message) => { // Get client var client = message.Client; // Get endpoint or ip address of client var endPoint = client.GetEndPoint(); var ip = client.GetIp(); // Use all the other clientUtil on client client.Send("Hello from server!"); // Determines whether message is compressed var isCompressed = message.IsCompressed(); /* Decompress message, * ignored when message is not compressed */ var data = message.Decompress(); }; }
public void SendBool() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); server.SendAll(true); }
public void TestIp() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Loopback, port)); Assert.AreEqual(IPAddress.Loopback, client.GetIp()); Assert.AreEqual(IPAddress.Loopback, server.GetConnectedClients().First().GetIp()); }
public void Start2() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(IPAddress.Any, port); //Start with dualMode socket ushort port2 = TestHelper.GetPort(); using var server2 = new EasyTcpServer(); server2.Start(IPAddress.IPv6Any, port2, true); }
public void Start3() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start("127.0.0.1", port); //Start with dualMode socket ushort port2 = TestHelper.GetPort(); using var server2 = new EasyTcpServer(); server2.Start("::1", port2, true); }
} // End of function, dispose/disconnect client because of using statement public static void Start() { // Create new easyTcpServer using var server = new EasyTcpServer(); // Start server server.Start(Port); // Print all receiving data server.OnDataReceive += (s, message) => Console.WriteLine(message); Console.WriteLine("Press enter to shutdown basic server..."); Console.ReadLine(); }
public void SendDouble() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); double data = 123.0; server.SendAll(data); }
public static async Task <TestData> GetTestConnection(EasyTcpClient client = null, EasyTcpServer server = null) { var port = GetPort(); server ??= new EasyTcpServer(); client ??= new EasyTcpClient(); server.Start(port); await client.ConnectAsync(IPAddress.Loopback, port); return(new TestData() { Client = client, Server = server }); }
public void SendAllArray() { ushort port = TestHelper.GetPort(); var server = new EasyTcpServer(); server.Start(port); var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); byte[] data = new byte[100]; server.SendAll(data); }
public void SendString() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); string data = "Data"; server.SendAll(data); server.SendAll(data, Encoding.UTF32); //Send with different encoding }
public void SendLong() { ushort port = TestHelper.GetPort(); var server = new EasyTcpServer(); server.Start(port); var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); long data = 123; server.SendAll(data); }
public void ServerStart() { ServerEvents.Info?.Invoke("Server starting..."); Server.OnServerStarted += OnServerStarted; Server.ClientConnected += OnClientConnected; Server.ClientDisconnected += OnClientDisconnected; Server.DataReceived += (sender, msg) => { Server.PacketHandler(msg, false); }; Server.OnError += (sender, ex) => { Console.WriteLine($"{ex.Message}\n{ex.StackTrace}"); }; Server.Start("127.0.0.1", 6124, 99999); }
public void SendAllActionInt() { ushort port = TestHelper.GetPort(); var server = new EasyTcpServer(); server.Start(port); var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); int data = 123; server.SendAllAction(0, data); server.SendAllAction("ECHO", data); }
public void OnDisconnectServer() { var port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(IPAddress.Any, port); int x = 0; server.OnDisconnect += (o, c) => Interlocked.Increment(ref x); var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); client.Dispose(); TestHelper.WaitWhileFalse(() => x == 1); Assert.AreEqual(1, x); }
public void OnConnect1() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); int connectCount = 0; server.OnConnect += (sender, c) => { Interlocked.Increment(ref connectCount); //Async lambda, so thread safe increase integer Console.WriteLine($"Client {connectCount} connected"); }; using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); TestHelper.WaitWhileTrue(() => connectCount == 0); Assert.AreEqual(1, connectCount); }
public void TestClient() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpActionClient(); client.OnDataReceive += (sender, message) => Console.WriteLine("123"); Assert.IsTrue(client.Connect(IPAddress.Loopback, port)); string data = "test"; foreach (var c in server.GetConnectedClients()) { var reply = c.SendActionAndGetReply(0, data); Assert.AreEqual(data, reply.ToString()); reply = c.SendActionAndGetReply("ECHO", data); Assert.AreEqual(data, reply.ToString()); } }