Vb.net通过Sharpssh与Unix服务器连接并等待响应

时间:2013-04-10 16:09:50

标签: vb.net sharpssh

您好我通过 sharpssh 连接到Unix服务器:

Imports Tamir.SharpSsh
Imports Tamir.Streams

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


        Dim ssh As SshExec
        ssh = New SshExec("********", "******", "*****")
        ssh.Connect()
        ssh.RunCommand("amos RNC111")
        ssh.RunCommand("lt all")
        ssh.RunCommand("bye")
        ssh.Close()

    End Sub
End Class

问题出在ssh.Connect()连接到RNC (无线网络控制器)之后,等待它连接。我不知道如何处理它,我检查使用重定向stdin但我发现创建一个新的进程:

    myProcess.StartInfo.FileName = "pepe.exe"
    myProcess.StartInfo.UseShellExecute = False
    myProcess.StartInfo.RedirectStandardInput = True
    myProcess.Start()
    Dim ssh As SshExec
    ssh = New SshExec("********", "******", "*****")
    ssh.Connect()
    ssh.RunCommand("amos RNC111")
    MsgBox(myProcess.StandardInput)
    ssh.Close()

但我没有工作。

1 个答案:

答案 0 :(得分:0)

您可以在Tamir程序集中使用SshShell类并使用Expect模式:

string pattern="admin@localhost:~$";
string res = string.Empty;
myshell2 = new Tamir.SharpSsh.SshShell(ipaddress, cteUser, ctePasswd);
myshell2.ExpectPattern = pattern;
myshell2.RemoveTerminalEmulationCharacters = true;
myshell2.Connect();

//启动命令

myshell2.WriteLine("ls -la");
res = myshell2.Expect(pattern);

shell将一直等到找到终端线。