Ejemplo n.º 1
0
        public void TestLargeArray()
        {
            ushort port = TestHelper.GetPort();

            using var server      = new EasyTcpServer().Start(port);
            server.OnDataReceive += async(sender, message) =>
            {
                var array = await message.ReceiveLargeArrayAsync();

                message.Client.Send(array.Length);
                await message.Client.SendLargeArrayAsync(array);
            };

            byte[] receivedArray = null;

            using var client      = new EasyTcpClient();
            client.OnDataReceive += (sender, message) => receivedArray = message.ReceiveLargeArray();
            Assert.IsTrue(client.Connect(IPAddress.Loopback, port));

            client.Send("first message");

            byte[] largeMessage = new byte[ushort.MaxValue * 10];
            for (int i = 0; i < largeMessage.Length; i++)
            {
                largeMessage[i] = 11;
            }

            client.SendLargeArray(largeMessage);
            TestHelper.WaitWhileTrue(() => receivedArray == null);
            Assert.IsTrue(receivedArray.SequenceEqual(largeMessage));
        }
Ejemplo n.º 2
0
        public static void Connect()
        {
            using var client = new EasyTcpClient();
            if (!client.Connect("127.0.0.1", Port))
            {
                return;
            }

            // Trigger action
            client.SendAction("LargeArray");

            // Send large array
            // Length of array is prefixed by default (int as byte[4])
            client.SendLargeArray(new byte[1000000]);

            // Send large array without length prefix
            client.SendLargeArray(new byte[10000], sendLengthPrefix: false);
            Console.ReadLine();
        }