Android Question SSH Reconnection

Discussion in 'Android Questions' started by Pedro Caldeira, Apr 30, 2015.

  1. Pedro Caldeira

    Pedro Caldeira Active Member Licensed User

    Hi,
    I am using jkSSH2 for SSH communications.
    I have a apllication that connects to a host, retrieve some files and ...
    when I change the hostaddress to reconnect to another host. It doesn't work
    either I close the connection (ssh.close) or not it doesn't reconnect.
    1) I Coneected to any host in my list and retrieve the files, then exit the application - All Ok
    I close the connection and try to reconnect. I get errors downloading the files.
    I dont close and simply change hosts, user and pass and re-initialize the class. I always get the files from the first host that tconnected.
    Help would be greatly appreciated. I wouldnt like my users to have to quit and reenter the application each time they want to change hosts. Below are the 2 routines that initialize, download and close the communication.

    Code:
    Sub SSH_Init
    SSH.initialize(
    "SSH", hAddress, 22)
    SSH.authenticateWithPassword(hUsername, hPassword)
    end Sub

    Sub Download
    SSH_Init
    SSH.getFile (
    "/home/file2.txt",File.DirDefaultExternal ,12)
    SSH.getFile (
    "/home/file1.txt",File.DirDefaultExternal ,12)
    End Sub

    Sub SSH_FileDownloadCompleted (Success As Boolean, RemoteFile As String, LocalTargetDirectory As String, TaskId As Int)
    if Success = True then
    SSh.Close
    End if
    End Sub
     
    Last edited: Apr 30, 2015
  2. Pedro Caldeira

    Pedro Caldeira Active Member Licensed User

    Help please :)
     
  3. giga

    giga Well-Known Member Licensed User

    Please use code insert when placing code in the forum.
    example:

    Code:
    Sub SSH_Init
    SSH.initialize(
    "SSH", hAddress, 22)
    SSH.authenticateWithPassword(hUsername, hPassword)
    end Sub

    Sub Download

    SSH_Init
    SSH.getFile (
    "/home/file2.txt",File.DirDefaultExternal ,12)
    SSH.getFile (
    "/home/file1.txt",File.DirDefaultExternal ,12)
    End Sub

    Sub SSH_FileDownloadCompleted (Success As Boolean, RemoteFile As String, LocalTargetDirectory As String, TaskId As Int)

    if Success = True then
    SSh.Close
    End if
    End Sub
    Are you sure the first connection has completed and closed? Is the application closed?
     
  4. Pedro Caldeira

    Pedro Caldeira Active Member Licensed User

    Hello,
    Yes I am sure. the SSH_Downloadcompleted event only triggers when the download process is finished, Successful or not.

    I have a listview where the user select from a list of host.
    The host, user, password values are beeing correctly passed to SSH_Init, because I have Already logged the vars to local window.
    I am using the DisableStrictMode as shown below, as Erel suggested in a earlier post. Could be that, that is preventing the close / refresh of the SSH tunnel ?

    Code:
    Sub DisableStrictMode
       
    Dim jo As JavaObject
       jo.InitializeStatic(
    "android.os.Build.VERSION")
       
    If jo.GetField("SDK_INT") > 9 Then
         
    Dim policy As JavaObject
         policy = policy.InitializeNewInstance(
    "android.os.StrictMode.ThreadPolicy.Builder"Null)
         policy = policy.RunMethodJO(
    "permitAll"Null).RunMethodJO("build"Null)
         
    Dim sm As JavaObject
         sm.InitializeStatic(
    "android.os.StrictMode").RunMethod("setThreadPolicy"Array(policy))
       
    End If
    End Sub
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice