[英]Read from StreamReader doesn't reach the end - Using Telnet protocol
我正在使用Telnet協議來查詢UNIX服務器並獲取某些命令的輸出。 我正在使用來自代碼項目的Minimalistic 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()
。
您能告訴我我的代碼有什么問題嗎?
在@ itsme86編寫時,連接保持打開狀態。 您期望發送的命令有任何響應嗎? 如果為true,則讀取響應,進行解析,找到一些定界符或其他完成符號,這些符號將標記該命令已成功執行,並使您的while()中斷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.