我使用ssh.net在C#中执行命令 但是每个命令返回的结果都是在不同的时间发生的。
我使用了线程,但是使用特定值需要超时。 我需要在输出时获得输出
我的代码:
protected void Page_Load(object sender, EventArgs e)
{
string Username = "xxxxxxxx";
string Password = "xxxxxxxxxx";
string IP = "xxxxxxxxxx";
int Port = xxxxxxxxx;
SshClient client = new SshClient(IP, Port, Username, Password);
client.Connect();
var shell = client.CreateShellStream("xxxx", 5000, 10000, 10000, 10000, 40072);
string output = ArrangeData("stelnet xxxxxxxx", shell);
output += ArrangeData("cmd1", shell);
output += ArrangeData("cmd2", shell);
output += ArrangeData("cmd3", shell);
}
public static string ArrangeData(string cmd, ShellStream sh)
{
StreamReader reader = null;
reader = new StreamReader(sh);
sh.Flush();
sh.WriteLine(cmd);
---->Thread.Sleep(timeout);
string output = reader.ReadToEnd();
return output;
}
当前解决方案是在线程中超时
但是,我需要删除此超时,因为我不知道它何时响应我的命令。