3 Stimmen

SharpSSH bleibt in einem unendlichen Stream lesen in C # SSH app stecken

Guten Tag zusammen,

Ich habe ein kleines Problem mit der SharpSSH-Bibliothek für .Net (siehe http://www.tamirgal.com/blog/page/SharpSSH.aspx )

        SshStream ssh = new SshStream("some ip address", "some username", "some password");
        ssh.Prompt = "\n";
        ssh.RemoveTerminalEmulationCharacters = true;            

        ssh.Write("ssh some ip address");
        // Don't care about this response
        ssh.ReadResponse();

        ssh.Write("lss /mnt/sata[1-4]");
        // Don't care about this response (for now)
        ssh.ReadResponse();

        // while the stream can be read
        while (ssh.CanRead)
        {
            Console.WriteLine(ssh.ReadResponse());
        }

        ssh.Close();

Wie Sie sehen können, ist es Ziemlich geradeaus.

Wenn jedoch in die while-Schleife eingetreten wird, bricht sie nicht aus der Schleife aus, wenn alles auf der Konsole ausgegeben wurde und es nichts mehr zu lesen gibt.

Gibt es eine Möglichkeit, das Programm manuell zu erzwingen? Pause wenn es sonst nichts zu lesen gibt?

Zum Wohl, Ric

4voto

Ssh.CanRead zeigt an, dass Stream eine Implementierung für Read hat, nicht dass er gelesen werden kann.

0voto

Silas Nalley Punkte 1
while(true)                                                                            
{                                                                              
    //Write command to the SSH stream                                            
        ssh.Write( "some command or execute a script on aix" );                      
        data = "";                                                                   
        data = ssh.ReadResponse();                                                   
        if (data.Length < 10)     //don't wnat response like $                       
        continue;                                                                

        textWriter.Write(data);  //write all of data to file on each response loop   

        if (data.Contains("EOF"))    //was insert at end of file so I can terminate  
        break;                                                                      

}                                                                              
  textWriter.Close();                                                            
ssh.Close(); //Close the connection                                            
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X