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)); }
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(); }