2013-04-10 1 views
0

Привет Я соединенными с сервером Unix на sharpssh с:Vb.net связан с сервером Unix по Sharpssh и ждать ответа

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 (контроллер радиосети) и дождитесь его подключения. Я не знаю, как справиться с этим, я проверяю, чтобы сделать это с redirecction на стандартном вводе, но я нашел, чтобы создать новый процесс с:

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() 

Но я не работаю.

ответ

0

Вы можете использовать класс SshShell внутри Тамир Ассамблея и использовать шаблон Expect:

string pattern="[email protected]:~$"; 
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); 

Оболочки будет ждать до тех пор, что терминал линия не будет найдена.