Просто я пытаюсь реализовать то, что BufferedStreamReader
делает на Java. У меня есть поток сокетов открытым и просто хочу прочитать его линейно-ориентированным способом - по очереди.
У меня есть следующий серверный код.
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());
}
}
И следующий клиентский код:
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();
}
Сервер читает только самую первую строку (login>user,pass
), а затем ReadLine
возвращает значение null!
Какой самый простой способ достичь этого ориентированного на линию читателя, как в Java BufferedStreamReader
?: S