示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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}");
        }