示例#1
0
        public string Read()
        {
            int messageByteLength = int.Parse(stream.ReadBytes(6));

            stream.ReadBytes(1); // skip the colon
            string message = stream.ReadBytes(messageByteLength);

            if (EndIdentifier.Matches(message))
            {
                IsEnd = true;
                socket.Close();
                return(null);
            }
            return(message);
        }
示例#2
0
        [Test] public void EncodedStringIsRead()
        {
            var testSocket   = new TestSocket();
            var socketStream = new SocketStream(testSocket);

            testSocket.PutBytes(new byte[] { 104, 226, 128, 153, 108, 108, 111 });
            Assert.AreEqual("h\u2019llo", socketStream.ReadBytes(7));
        }
示例#3
0
        [Test] public void SimpleStringIsRead()
        {
            var testSocket   = new TestSocket();
            var socketStream = new SocketStream(testSocket);

            testSocket.PutBytes(new byte[] { 104, 101, 108, 108, 111 });
            Assert.AreEqual("hello", socketStream.ReadBytes(5));
        }
示例#4
0
        [Test] public void StringIsReadInMultipleParts()
        {
            var testSocket   = new TestSocket();
            var socketStream = new SocketStream(testSocket);

            testSocket.PutBytes(new byte[] { 104, 101, 108, 108, 111 });
            testSocket.PutBytes(new byte[] { 32, 119, 111, 114, 108, 100 });
            Assert.AreEqual("hello world", socketStream.ReadBytes(11));
        }
        public void EstablishConnection(string request)
        {
            reporter.WriteLine("\tHTTP request: " + request);
            Transmit(request);

            reporter.WriteLine("Validating connection...");
            int StatusSize = ReceiveInteger();

            if (StatusSize == 0)
            {
                reporter.WriteLine("\t...ok\n");
            }
            else
            {
                String errorMessage = socketStream.ReadBytes(StatusSize);
                reporter.WriteLine("\t...failed because: " + errorMessage);
                Console.WriteLine("An error occured while connecting to client.");
                Console.WriteLine(errorMessage);
                Environment.Exit(-1);
            }
        }
示例#6
0
        public string Read()
        {
            string lengthString = string.Empty;

            while (true)
            {
                var lengthCharacter = stream.ReadBytes(1);
                if (lengthCharacter == ":")
                {
                    break;
                }
                lengthString += lengthCharacter;
            }
            int    messageByteLength = int.Parse(lengthString);
            string message           = stream.ReadBytes(messageByteLength);

            if (EndIdentifier.Matches(message))
            {
                IsEnd = true;
                socket.Close();
                return(null);
            }
            return(message);
        }