簡體   English   中英

從StreamReader讀取沒有達到終點-使用Telnet協議

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM