Beispiel #1
0
        public ClientScenarios(IPAddress address)
        {
            AsyncTcp.Initialize(this);

            _address    = address;
            _xorShifter = new XorShift(true);
            _random     = new Random();
        }
Beispiel #2
0
        public void CanStartServer_StartedWithoutError()
        {
            AsyncTcp      transport = new AsyncTcp();
            NetworkServer server    = new NetworkServer(0, 2, 4095, transport);

            server.StartServer();

            Thread.Sleep(1000);
            Assert.IsTrue(server.IsServerActive());
        }
Beispiel #3
0
        public void CanDisconnect_DisconnectedWithoutCrashingServer()
        {
            #region Server Initialization

            //server
            AsyncTcp      serverTransport = new AsyncTcp();
            NetworkServer server          = new NetworkServer(2402, 5, 4095, serverTransport);
            server.StartServer();

            #endregion Server Initialization

            Thread.Sleep(1000);

            #region Clients Initialization

            //client 1
            AsyncTcp      client1Transport = new AsyncTcp();
            NetworkClient client1          = new NetworkClient("127.0.0.1", 2402, 4095, client1Transport);

            //client 2
            AsyncTcp      client2Transport = new AsyncTcp();
            NetworkClient client2          = new NetworkClient("127.0.0.1", 2402, 4095, client2Transport);

            //client3
            AsyncTcp      client3Transport = new AsyncTcp();
            NetworkClient client3          = new NetworkClient("127.0.0.1", 2402, 4095, client3Transport);

            client1.StartClient();
            client2.StartClient();
            client3.StartClient();

            #endregion Clients Initialization

            Thread.Sleep(1000);

            client1.StopClient();

            Thread.Sleep(1000);

            Assert.IsTrue(!client1.IsActive() && server.IsServerActive());
        }
Beispiel #4
0
        public void CanConnect_MultipleClientsConnecting_ConnectionEstablishes()
        {
            #region Server Initialization

            //server
            AsyncTcp      serverTransport = new AsyncTcp();
            NetworkServer server          = new NetworkServer(2401, 5, 4095, serverTransport);
            server.StartServer();

            #endregion Server Initialization

            Thread.Sleep(1000);

            #region Clients Initialization

            //client 1
            AsyncTcp      client1Transport = new AsyncTcp();
            NetworkClient client1          = new NetworkClient("127.0.0.1", 2401, 4095, client1Transport);

            //client 2
            AsyncTcp      client2Transport = new AsyncTcp();
            NetworkClient client2          = new NetworkClient("127.0.0.1", 2401, 4095, client2Transport);

            //client3
            AsyncTcp      client3Transport = new AsyncTcp();
            NetworkClient client3          = new NetworkClient("127.0.0.1", 2401, 4095, client3Transport);

            client1.StartClient();
            client2.StartClient();
            client3.StartClient();

            #endregion Clients Initialization

            Thread.Sleep(1000);

            Assert.IsTrue(client1.IsActive() && client2.IsActive() && client3.IsActive());
        }
Beispiel #5
0
 public ServerScenarios()
 {
     AsyncTcp.Initialize(this);
 }
        public void SendPacket_BothSidesReceives()
        {
            bool serverReceivedPacket = false;
            bool clientReceivedPacket = false;

            #region Server Initialization

            //server
            AsyncTcp      serverTransport = new AsyncTcp();
            NetworkServer server          = new NetworkServer(2403, 5, 4095, serverTransport);
            server.StartServer();

            server.RegisterHandler(0, (connection, packet) =>
            {
                string msg = packet.ReadString();
                int msg2   = packet.ReadInteger();
                float msg3 = packet.ReadFloat();

                if (msg == "I Am Alive!" && msg2 == 12345 && msg3 == 123.456f)
                {
                    serverReceivedPacket = true;
                }
            });

            #endregion Server Initialization

            Thread.Sleep(1000);

            #region Clients Initialization

            //client 1
            AsyncTcp      client1Transport = new AsyncTcp();
            NetworkClient client1          = new NetworkClient("127.0.0.1", 2403, 4095, client1Transport);

            //client 2
            AsyncTcp      client2Transport = new AsyncTcp();
            NetworkClient client2          = new NetworkClient("127.0.0.1", 2403, 4095, client2Transport);

            //client3
            AsyncTcp      client3Transport = new AsyncTcp();
            NetworkClient client3          = new NetworkClient("127.0.0.1", 2403, 4095, client3Transport);

            client1.StartClient();
            client2.StartClient();
            client3.StartClient();

            client1.RegisterHandler(0, packet =>
            {
                string msg = packet.ReadString();
                int msg2   = packet.ReadInteger();
                float msg3 = packet.ReadFloat();

                if (msg == "I Am Alive!" && msg2 == 12345 && msg3 == 123.456f)
                {
                    clientReceivedPacket = true;
                }
            });

            #endregion Clients Initialization

            Thread.Sleep(1000);

            #region Server Sending Data

            Packet serverPacket = new Packet();
            serverPacket.WriteString("I Am Alive!");
            serverPacket.WriteInteger(12345);
            serverPacket.WriteFloat(123.456f);

            server.NetworkSendEveryone(0, serverPacket);

            #endregion Server Sending Data

            #region Client Sending Data

            Packet clientPacket = new Packet();
            clientPacket.WriteString("I Am Alive!");
            clientPacket.WriteInteger(12345);
            clientPacket.WriteFloat(123.456f);

            client1.NetworkSend(0, clientPacket);

            #endregion Client Sending Data

            Thread.Sleep(2000);

            Assert.IsTrue(serverReceivedPacket && clientReceivedPacket);
        }