Пример #1
0
        static public void TestTunnelData()
        {
            // Test binary tunneling
            byte[] data = { 1, 2, 3 };
            using (var hs = new HttpSocket(
                       new EchoSocket(false, data).socket))
            {
                // We tunnel data... to ourselves!
                hs.TunnelDataTo(hs, 3);
                uint r = hs.ReadBinary();
                Assert.AreEqual(3, r);
                Assert.AreEqual(1, hs.Buffer[0]);
                Assert.AreEqual(2, hs.Buffer[1]);
                Assert.AreEqual(3, hs.Buffer[2]);
            }

            // Test the mixing of line-based and raw-based tunneling
            byte[] data2 = { (byte)'A', 13, 10, 42, 42, (byte)'B', 13, 10 };
            using (var hs = new HttpSocket(
                       new EchoSocket(false, data2).socket))
            {
                // Ditto
                hs.TunnelDataTo(hs, (uint)data2.Length);
                string msgA = hs.ReadAsciiLine();
                Assert.AreEqual("A", msgA);
                hs.TunnelDataTo(hs, 2);
                string msgB = hs.ReadAsciiLine();
                Assert.AreEqual("B", msgB);
            }
        }
Пример #2
0
        public static void TestTunnelData()
        {
            // Test binary tunneling
            byte[] data = { 1, 2, 3 };
            using (var hs = new HttpSocket(
                new EchoSocket(false, data).socket))
            {
                // We tunnel data... to ourselves!
                hs.TunnelDataTo(hs, 3);
                uint r = hs.ReadBinary();
                Assert.AreEqual(3, r);
                Assert.AreEqual(1, hs.Buffer[0]);
                Assert.AreEqual(2, hs.Buffer[1]);
                Assert.AreEqual(3, hs.Buffer[2]);
            }

            // Test the mixing of line-based and raw-based tunneling
            byte[] data2 = { (byte)'A', 13, 10, 42, 42, (byte)'B', 13, 10 };
            using (var hs = new HttpSocket(
                new EchoSocket(false, data2).socket))
            {
                // Ditto
                hs.TunnelDataTo(hs, (uint)data2.Length);
                string msgA = hs.ReadAsciiLine();
                Assert.AreEqual("A", msgA);
                hs.TunnelDataTo(hs, 2);
                string msgB = hs.ReadAsciiLine();
                Assert.AreEqual("B", msgB);
            }
        }