2010-10-24 51 views
0

我有这样的代码:SharpSSH - SSHExec,运行命令,并等待5秒的数据!

using System; 
using System.Text; 
using Tamir.SharpSsh; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      SshExec exec = new SshExec("192.168.0.1", "admin", "haha"); 
      exec.Connect(); 
      string output = exec.RunCommand("interface wireless scan wlan1 duration=5"); 
      Console.WriteLine(output); 
      exec.Close(); 
     } 
    } 
} 

该命令将执行!我可以看到,但!它立即打印数据。或者实际上,它不会打印命令中的数据。它打印像mikrotik os的...徽标。我实际上需要命令中的数据,而我需要SharpSSH等待至少5秒钟的数据,然后将其还给我... 有人知道我该如何做到这一点?

我对此很新!我感谢所有帮助!谢谢!

+0

我不熟悉SharpSsh,但它似乎在.RunCommand不会等那么久...改变你的代码将不会帮助,你需要找出是否有不同的运行命令。 – TimothyP 2010-10-25 05:57:51

回答

1

你可能想尝试以下过载:

SshExec exec = new SshExec("192.168.0.1", "admin", "haha"); 
exec.Connect(); 
string stdOut = null; 
string stdError = null; 
exec.RunCommand("interface wireless scan wlan1 duration=5", ref stdOut, ref stdError); 

Console.WriteLine(stdOut); 
exec.Close(); 

如果他们的API做什么顾名思义,它应该把你在标准输出命令 的标准输出和stdError标准错误。

有关标准流的更多信息,检查了这一点:http://en.wikipedia.org/wiki/Standard_streams