public static void Connect() { using var client = new EasyTcpClient(); if (!client.Connect("127.0.0.1", Port)) { return; } // Trigger action client.SendAction("ReceiveStream"); // Send large array // Length of stream is prefixed by default (long as byte[8]) var stream = new MemoryStream(new byte[100000]); client.SendStream(stream); // Send stream without length prefix var stream2 = new MemoryStream(new byte[10000]); client.SendStream(stream2, sendLengthPrefix: false); Console.ReadLine(); // Writing / reading the base stream is also possible var baseStream = client.Protocol.GetStream(client); }
public void Stream() { var certificate = new X509Certificate2("certificate.pfx", "password"); ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer().UseSsl(certificate).Start(port); using var client = new EasyTcpClient().UseSsl("localhost", true); Assert.IsTrue(client.Connect(IPAddress.Any, port)); string testData = "123", data = null; server.OnDataReceiveAsync += async(sender, message) => //Receive stream from client { await using var stream = new MemoryStream(); message.ReceiveStream(stream); data = Encoding.UTF8.GetString(stream.ToArray()); }; //Send stream to server using var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(testData)); client.Send("Stream"); client.SendStream(dataStream); TestHelper.WaitWhileTrue(() => data == null); Assert.AreEqual(testData, data); }
public void Stream1() //Client -> -(Stream)> Server (Client sends message to server) { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer(); server.Start(port); using var client = new EasyTcpClient(); Assert.IsTrue(client.Connect(IPAddress.Any, port)); string testData = "123", data = null; server.OnDataReceive += (sender, message) => //Receive stream from client { using var stream = new MemoryStream(); message.ReceiveStream(stream); data = Encoding.UTF8.GetString(stream.ToArray()); }; //Send stream to server using var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(testData)); client.Send("Stream"); client.SendStream(dataStream); TestHelper.WaitWhileTrue(() => data == null); Assert.AreEqual(testData, data); }
public static void Upload(string fileName, string saveAs) { var client = new EasyTcpClient(); if (!client.Connect(IPAddress.Any, Port)) { return; } client.SendAction("UPLOAD", saveAs); using var fileStream = new FileStream(fileName, FileMode.Open); client.SendStream(fileStream); // Send stream and use fileStream as source Console.WriteLine($"Uploaded {fileName}, saved as {saveAs}"); }