All pastes #737158 Raw Edit

Someone

public text v1 · immutable
·published 2007-10-15 04:29 UTC
rendered paste body
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