C # - StreamReader.ReadLine não funciona corretamente!

Simplesmente eu tenho tentado implementar o queBufferedStreamReader faz em Java. Eu tenho um fluxo de soquete aberto e só quero lê-lo em uma linha de moda orientada - linha por linha.

Eu tenho o seguinte código de servidor.

while (continueProcess)
        {
            try
            {
                StreamReader reader = new StreamReader(Socket.GetStream(), Encoding.UTF8);
                string command = reader.ReadLine();
                if (command == null)
                    break;

                OnClientExecute(command);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }

E o seguinte código do cliente:

TcpClient tcpClient = new TcpClient();
        try
        {
            tcpClient.Connect("localhost", serverPort);
            StreamWriter writer = new StreamWriter(tcpClient.GetStream(), Encoding.UTF8);
            writer.AutoFlush = true;
            writer.WriteLine("login>user,pass");
            writer.WriteLine("print>param1,param2,param3");
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        finally
        {
            tcpClient.Close();
        }

O servidor lê apenas a primeira linha (login>user,pass) e depoisReadLine retorna null!

Qual é a maneira mais fácil de alcançar este leitor orientado a linhas como é no JavaBufferedStreamReader? : s

questionAnswers(4)

yourAnswerToTheQuestion