0

我有这个代码:

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 秒的数据,然后将其返回给我......有人知道我该怎么做吗?

我对此很陌生!我感谢所有帮助!谢谢!

4

1 回答 1

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 实现了顾名思义,它应该将命令的标准输出放在 stdOut 中,将标准错误放在 stdError 中。

有关标准流的更多信息,请查看:http ://en.wikipedia.org/wiki/Standard_streams

于 2010-10-25T06:04:51.250 回答