Beispiel #1
0
 public EchoServerFixture()
 {
     Task.Run(() =>
     {
         EasyServer server = new EasyServer();
         server.ConnectHandler(socket =>
         {
             socket.Receive(receivedData =>
             {
                 socket.Send(receivedData, sendSize =>
                 {
                 });
             });
             socket.CloseHandler(() =>
             {
             });
             socket.ExceptionHandler(exception =>
             {
             });
         });
         server.ExceptionHandler(exception =>
         {
         });
         server.Start("127.0.0.1", EchoServerPort);
     });
 }
Beispiel #2
0
        public void ServerIdleTimeoutTest()
        {
            int  port    = 16001;
            bool timeout = false;

            CountdownEvent countdownEvent = new CountdownEvent(1);

            EasyServer server = new EasyServer();

            Task.Run(() =>
            {
                server.ConnectHandler(socket =>
                {
                    socket.SocketConfiguration.IdleTimeout = 2000;

                    string socketId = socket.SocketId;
                    socket.IdleTimeoutHandler(() =>
                    {
                        _output.WriteLine($"[{socketId}] server idle timeout handler");
                        timeout = true;
                        countdownEvent.Signal();
                    });
                    socket.CloseHandler(() =>
                    {
                        _output.WriteLine($"[{socketId}] server socket close handler");
                    });
                    socket.ExceptionHandler(exception =>
                    {
                        _output.WriteLine($"[{socketId}] server socket exception handler - {exception}");
                    });
                    socket.Receive(receivedData =>
                    {
                        string stringData = Encoding.UTF8.GetString(receivedData);
                        _output.WriteLine($"[{socketId}] server socket receive - {stringData}:{stringData.Length}");
                    });
                });
                server.ExceptionHandler(exception =>
                {
                    _output.WriteLine($"server start exception handler - {exception}");
                });
                server.Start("127.0.0.1", port);
            }).Wait(1000);

            EasyClient client = new EasyClient();

            client.ConnectHandler(socket =>
            {
                // skip
            });
            client.ExceptionHandler(exception =>
            {
                _output.WriteLine($"client connect exception handler - {exception}");
            });

            client.Connect("127.0.0.1", port);
            countdownEvent.Wait(5000);
            server.Stop();
            Assert.True(timeout);
        }
Beispiel #3
0
        public void Run(string addr, int port)
        {
            _server.ConnectHandler(socket =>
            {
                string socketId = socket.SocketId;

                _logger.LogInformation($"[{socketId}] Connected");

                socket.ExceptionHandler(exception =>
                {
                    _logger.LogError($"[{socketId}] Exception - {exception.Message}");
                });
                socket.IdleTimeoutHandler(() =>
                {
                    _logger.LogInformation($"[{socketId}] Idle Timeout");
                });
                socket.CloseHandler(() =>
                {
                    _logger.LogInformation($"[{socketId}] Closed");
                });
                socket.Receive(receiveData =>
                {
                    string recvStringData = Encoding.UTF8.GetString(receiveData);
                    _logger.LogInformation($"[{socketId}] Receive data - {recvStringData}, size:{receiveData.Length}");

                    socket.Send(receiveData, size =>
                    {
                        string sendStringData = Encoding.UTF8.GetString(receiveData);
                        _logger.LogInformation($"[{socketId}] Send data - {sendStringData}, size:{size}");
                    });
                });

                int count = _server.GetConnectedCount();
                _logger.LogInformation($"[{socketId}] now total connection count - {count}");
            });
            _server.ExceptionHandler(exception =>
            {
                _logger.LogError($"Exception - {exception.Message}");
            });

            _server.Start(addr, port);
        }
        public void ClosedSocketFromServer()
        {
            int    port   = 15001;
            string data   = "testData";
            bool   closed = false;

            EasyServer server = new EasyServer();

            Task.Run(() =>
            {
                server.ConnectHandler(socket =>
                {
                    string socketId = socket.SocketId;
                    socket.CloseHandler(() =>
                    {
                        _output.WriteLine($"[{socketId}] server socket close handler");
                    });
                    socket.ExceptionHandler(exception =>
                    {
                        _output.WriteLine($"[{socketId}] server socket exception handler - {exception}");
                    });
                    socket.Receive(receivedData =>
                    {
                        string stringData = Encoding.UTF8.GetString(receivedData);
                        _output.WriteLine($"[{socketId}] server socket receive - {stringData}:{stringData.Length}");
                        socket.Close();
                    });
                });
                server.ExceptionHandler(exception =>
                {
                    _output.WriteLine($"server start exception handler - {exception}");
                });
                server.Start("127.0.0.1", port);
            }).Wait(1500);

            EasyClient     client         = new EasyClient();
            CountdownEvent countdownEvent = new CountdownEvent(1);

            client.ConnectHandler(socket =>
            {
                string socketId = socket.SocketId;
                socket.CloseHandler(() =>
                {
                    _output.WriteLine($"[{socketId}] client socket close handler");
                    closed = true;
                    countdownEvent.Signal();
                });
                socket.ExceptionHandler(exception =>
                {
                    _output.WriteLine($"[{socketId}] client socket close handler");
                });

                byte[] sendData = Encoding.UTF8.GetBytes(data);
                socket.Send(sendData, sendSize =>
                {
                    _output.WriteLine($"[{socketId}] client socket send  - {data}:{data.Length}");
                });
                socket.Receive(receivedData =>
                {
                    string stringData = Encoding.UTF8.GetString(receivedData);
                    _output.WriteLine($"[{socketId}] client socket receive  - {stringData}:{stringData.Length}");
                });
            });
            client.ExceptionHandler(exception =>
            {
                _output.WriteLine($"client connect exception handler - {exception}");
            });
            client.Connect("127.0.0.1", port);
            countdownEvent.Wait();
            server.Stop();
            Assert.True(closed);
        }