Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports SBSSHClient
Imports SBSSHCommon
Imports SBSSHConstants
Imports SBSSHKeyStorage
Imports SBUtils
'Imports QueryDialog
Public Class frmMain
Private ClientSocket As Socket
Private SSHClient As TElSSHClient
Private SSHTunnel As TElShellSSHTunnel
Private SSHTunnelList As TElSSHTunnelList
Private SSHTunnelConnection As TElSSHTunnelConnection
Private boolConnected As Boolean
Private KeyStorage As TElSSHMemoryKeyStorage
Private ClientSocketReceiveBuf(0) As Byte
Private ClientSocketReceiveBufHasData As Boolean
Private Sub Init()
SSHClient = New TElSSHClient
SSHTunnel = New TElShellSSHTunnel
SSHTunnelList = New TElSSHTunnelList
SSHTunnel.TunnelList = SSHTunnelList
SSHClient.TunnelList = SSHTunnelList
KeyStorage = New TElSSHMemoryKeyStorage
SSHClient.KeyStorage = KeyStorage
End Sub
Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
SSHClient.UserName = txtUserName.Text
SSHClient.Password = txtPassWord.Text
SSHClient.AuthenticationTypes = SSHClient.AuthenticationTypes
Dim hostadd As IPAddress = Dns.Resolve(txtHost.Text).AddressList(0)
Dim epHost As New IPEndPoint(hostadd, Convert.ToInt32("22", 10))
Dim tSocket As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
ClientSocket.BeginConnect(epHost, New AsyncCallback(AddressOf clientSocket_OnOpenConnection), Nothing)
btnConnect.Text = "Disconnect"
End Sub
Private Sub clientSocket_OnOpenConnection(ByVal ar As IAsyncResult)
Try
ClientSocket.EndConnect(ar)
ClientSocketReceiveBufHasData = False
ClientSocket.BeginReceive(ClientSocketReceiveBuf, 0, ClientSocketReceiveBuf.Length, 0, New AsyncCallback(AddressOf clientSocket_OnReceive), Nothing)
SSHClient.Open()
txtTerm.Text = "Client socket connected"
Catch ex As Exception
Reset()
End Try
End Sub
Private Sub clientSocket_OnReceive(ByVal ar As IAsyncResult)
Try
Dim i As Integer = ClientSocket.EndReceive(ar)
If i > 0 Then
ClientSocketReceiveBufHasData = True
End If
While True
SSHClient.DataAvailable()
If ClientSocketReceiveBufHasData Then
Thread.Sleep(1)
Else
ClientSocket.BeginReceive(ClientSocketReceiveBuf, 0, ClientSocketReceiveBuf.Length, 0, New AsyncCallback(AddressOf clientSocket_OnReceive), Nothing)
Exit While
End If
End While
Catch ex As Exception
Reset()
End Try
End Sub
End Class