0
我正在使用Telnet协议来查询UNIX服务器并获取某些命令的输出。我现在用的是Minimalistic telnet from code project和我做了轻微的修改,以使阅读输出到流的末尾:从StreamReader读取未达到结束 - 使用Telnet协议
public void WriteCommand(string cmd)
{
using (NetworkStream stream = tcpSocket.GetStream())
{
using (StreamWriter writer = new StreamWriter(stream))
{
writer.AutoFlush = true;
using (StreamReader reader = new StreamReader(stream))
{
string message = cmd;
writer.WriteLine(message);
writer.Flush();
while (!reader.EndOfStream)
{
string response = reader.ReadLine();
Console.WriteLine(response);
}
}
}
}
}
的问题是,当我运行这个方法,这是应该返回输出到最后,它被阻止,因为它不能识别流结束,所以条件reader.EndOfStream()
永远不会到达。
你能告诉我我的代码有什么问题吗?
难道是你的流中有一些奇怪的字符,并且读取的行不正确吗? – Marko
Telnet连接不像HTTP;连接保持打开状态。你期望什么来表明流的结束?你是否终止了连接? – itsme86
不,我想终止命令,但是我想让连接保持打开状态 –