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

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

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

Другие вопросы по тегам