Exemple #1
0
        public void PropertiesTest()
        {
            int    expectedPacketId   = 1;
            int    expectedClientId   = 11;
            string expectedDataString = "Hello!";
            Packet emptyPacket        = new Packet();


            ExamplePacket firstPacket = new ExamplePacket
            {
                ClientId     = expectedClientId,
                PacketTypeId = expectedPacketId,
                DataString   = expectedDataString
            };
            ExamplePacket secondPacket = new ExamplePacket();

            secondPacket.Bytes = firstPacket.Bytes;
            int expectedPacketLength = firstPacket.Bytes.Length;

            Assert.Equal(expectedDataString, firstPacket.DataString);
            Assert.Equal(expectedPacketId, firstPacket.PacketTypeId);
            Assert.Equal(expectedClientId, firstPacket.ClientId);
            Assert.Equal(expectedPacketLength, firstPacket.Bytes.Length);

            Assert.Equal(expectedDataString, secondPacket.DataString);
            Assert.Equal(expectedPacketId, secondPacket.PacketTypeId);
            Assert.Equal(expectedClientId, secondPacket.ClientId);
            Assert.Equal(expectedPacketLength, secondPacket.Bytes.Length);

            Assert.Equal(firstPacket.PacketLength, firstPacket.Bytes.Length);
            Assert.Equal(secondPacket.PacketLength, secondPacket.Bytes.Length);

            Assert.Equal(Packet.HEADERSOFFSET, emptyPacket.PacketLength);
        }
Exemple #2
0
        static void DelegatePacketHandlers()
        {
            var sender = new PacketSender();
            var packet = new ExamplePacket();

            var sw       = Stopwatch.StartNew();
            var registry = new DelegatePacketHandlerRegistry();

            if (!registry.TryRegisterHandlers(Assembly.GetExecutingAssembly()))
            {
                Console.WriteLine("Failed to register delegate handlers.");
            }

            sw.Stop();

            Console.WriteLine($"{nameof(DelegatePacketHandlers)}: Registration took {sw.Elapsed.TotalMilliseconds}ms");

            sw = Stopwatch.StartNew();
            for (var itr = 0; itr < 10000000; ++itr)
            {
                registry.Handle(sender, packet);
            }

            sw.Stop();

            Console.WriteLine($"{nameof(DelegatePacketHandlers)}: Invocation took {sw.Elapsed.TotalMilliseconds}ms");
        }
        public void Tcp_Sending_Receiving_Packets()
        {
            SimpleServer server = new SimpleServer();

            server.Start(20, 8888);


            Thread.Sleep(10);

            SimpleNetworking.User.UserClient userClient = new User.UserClient();
            userClient.Connect(IPAddress.Parse("127.0.0.1"), 8888);

            Thread.Sleep(4 * 1000);

            Packet sendPacket = new ExamplePacket {
                DataString = "Hello?"
            };

            userClient.Send(sendPacket, ProtocolType.Tcp);
            userClient.Send(sendPacket, ProtocolType.Udp);
            userClient.Send(sendPacket, ProtocolType.Udp);
            userClient.Send(sendPacket, ProtocolType.Udp);

            server.Clients[userClient.Id].Send(sendPacket, ProtocolType.Tcp);
            server.Clients[userClient.Id].Send(sendPacket, ProtocolType.Udp);
            server.Clients[userClient.Id].Send(sendPacket, ProtocolType.Udp);

            Stopwatch timer = new Stopwatch();

            timer.Start();
            for (int i = 0; i < 2000; i++)
            {
                server.Clients[userClient.Id].Send(sendPacket, ProtocolType.Udp);
            }
            timer.Stop();
            timer.Reset();
            timer.Start();
            for (int i = 0; i < 2000; i++)
            {
                userClient.Send(sendPacket, ProtocolType.Tcp);
            }
            timer.Stop();
            server.Clients[userClient.Id].Disconnect();

            Thread.Sleep(10);

            Assert.Equal(2000 + 4, server.ReceivedPackets.Count);
            Assert.Equal(2000 + 3, userClient.ReceivedPackets.Count);
            Assert.True(userClient.Id != 0);
        }
Exemple #4
0
 public static bool Handle(PacketSender packetSender, ExamplePacket packet) => true;