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