public static void Connect()
        {
            var client = new EasyTcpClient();

            if (!client.Connect(IPAddress.Loopback, Port))
            {
                return;
            }

            var list = new PacketList <Message>
            {
                EasyTcpPacket.To <Message>("Message1"),
                EasyTcpPacket.To <Message>("Message2"),
                EasyTcpPacket.To <Message>("Message3")
            };

            client.Send(list); // Send list

            // Message also implements IEasyTcpPacket
            // So we can use all functions on message as example
            // This is how we create a new message with as content a string
            // The EasyTcpPacket.To can be used on all packets, but not all packets support being created from a string
            // Our list for example wouldn't work when created from a string
            var message = EasyTcpPacket.To <Message>("S_T_R_I_N_G");

            message.Compress(); // Compress message
        }
Exemple #2
0
        public void TestEncryptingAndDecryptingMessage()
        {
            var encryption = new EasyEncrypt();

            var testData         = "testData";
            var message          = EasyTcpPacket.To <Message>(Encoding.UTF8.GetBytes(testData));
            var encryptedMessage = EasyTcpPacket.To <Message>(message.Data).Encrypt(encryption);
            var decryptedMessage = EasyTcpPacket.To <Message>(encryptedMessage.Data).Decrypt(encryption);

            Assert.AreEqual(message.ToString(), decryptedMessage.ToString());
            Assert.AreNotEqual(message.ToString(), encryptedMessage.ToString());
        }
        public static void Run()
        {
            const ushort PORT = 100;

            using var encrypter   = new EasyEncrypt("Password", "SALT1415312");
            using var server      = new EasyTcpServer().Start(PORT);
            server.OnDataReceive += (sender, message) =>
                                    Console.WriteLine($"Received: {message.Decrypt(encrypter).ToString()}");

            using var client = new EasyTcpClient();
            if (!client.Connect(IPAddress.Loopback, PORT))
            {
                return;
            }
            client.Send(EasyTcpPacket.To <Message>("Hello Server!").Encrypt(encrypter));
        }
        public static void Connect()
        {
            var client = new EasyTcpClient();

            if (!client.Connect(IPAddress.Loopback, Port))
            {
                return;
            }

            using var encrypter = new EasyEncrypt("Key", Salt);

            // Send encrypted message
            // .Encrypt works on all EasyTcpPackets
            client.Send(EasyTcpPacket.To <Message>("TestMessage").Encrypt(encrypter)
                        .Compress()); // Compression also works on all EasyTcpPackets
        }
Exemple #5
0
        public void SendEncryptedData()
        {
            ushort port = TestHelper.GetPort();

            using var server      = new EasyTcpServer().Start(port);
            server.OnDataReceive += (sender, message) => message.Client.Send(message);

            var encryption = new EasyEncrypt();

            using var client = new EasyTcpClient();
            Assert.IsTrue(client.Connect(IPAddress.Any, port));

            string data = "123";
            var    m    = client.SendAndGetReply(EasyTcpPacket.To <Message>(data).Encrypt(encryption).Compress());

            Assert.AreEqual(data, m.Decompress().Decrypt(encryption).ToString());
        }
Exemple #6
0
 /// <summary>
 /// Received data as a custom IEasyTcpPacket
 /// </summary>
 /// <typeparam name="T">Packet type</typeparam>
 /// <returns>data as custom IEasyTcpPacket</returns>
 public T ToPacket <T>() where T : IEasyTcpPacket, new() => EasyTcpPacket.To <T>(Data);