SharpSSH - SSHExec, запустите команду и подождите 5 секунд данных! - PullRequest
0 голосов
/ 24 октября 2010

У меня есть этот код:

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 секунд данных, а затем вернул их мне ... Кто-то знает, как я могу это сделать?

Я довольно новичокк этому!Я ценю всю помощь!Спасибо!

1 Ответ

1 голос
/ 25 октября 2010

Возможно, вы захотите попробовать следующую перегрузку:

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

...