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 に答える