Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6] inet FTP GET

    Ho fatto un programma che ogni tot di tempo si connette ad un server ftp entra in una cartella scarica tuti i file in una cartelals ul mio pc e li elimina dell'ftp.
    Sul mio pc funziona tutto perfettamente.
    Peccato solo che il programma non debba usarlo io.

    Sulle macchine dove dovrebbe andare non va.
    O meglio si connette
    entra nelal cartella
    NON scarica i file
    ma li elimina.

    Da cosa può essere dovuto?
    Premetto che il server ftp è lo stesso.
    Cambia solo il pc.

    Il mio è connesso con adsl senza router ma direttamente con dsl.

    L'altro sta dietro router.
    Le porte dovrebbero essere configurate nel modo giusto (dovrebbe perchè non ho al possibilità di controllare personalmente).

    PEr la connesisone uso il INET.

    Qualcuno ha qualche idea?

    LA cosa strana è che se faccio scaricare un singolo file (con un pulsante donwload) questo vine scaricato correttamente.
    Se invece utilizzo il mio codice che dovrebeb scaricarli tutti non va.

    Download singolo:
    codice:
    Private Sub cmdDownload_Click()
        On Error GoTo ERRORE
        Inet1.Execute "", "GET " & ListOut.Text & " " & ListOut.Text
        Exit Sub
    ERRORE:
        MsgBox "ERRORE: " & Err.Description, vbCritical + vbOKOnly
    End Sub
    dove ListOut.Text contiene il nome del file



    mio codice per scaricare tutti i file (che sul mio pc funziona)
    codice:
    Dim tot As Integer
                    Dim j As Integer
                    tot = Me.ListOut.ListCount
                    Do While (Inet1.StillExecuting)
                        MsgWaitObj (2000)
                    Loop
                    Dim ultimo As String
                    For j = 0 To tot - 1
                        ultimo = Right(ListOut.List(j), 1)
                        If ListOut.List(j) <> "./" And ListOut.List(j) <> "../" And ultimo <> "/" And ListOut.List(j) <> "default.asp" Then
                            Do While (Inet1.StillExecuting)
                                MsgWaitObj (1000)
                            Loop
                                Inet1.Execute "", "GET " & ListOut.List(j) & " " & Me.txtLocale & ListOut.List(j)
                            Do While (Inet1.StillExecuting)
                                MsgWaitObj (1000)
                            Loop
                            Inet1.Execute "", "DELETE " & ListOut.List(j)
                        End If
                    Next j
    I controlli nell'if servonos olo epr non eliminare un file (default.asp e ./ ../)

    Ricordo che il DELETE funziona sia sul mio pc he sull'altro mentre il GET solo sul mio



    Me.txtLocale contiene semplciemetne il percorso in cui salvare i file.

  2. #2
    up

  3. #3
    up

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    2
    Ciao,
    io non sono un esperto di VB ma conosco abbastanza bene i protocolli di comunicazione.
    Penso che quello che ti scrivo potrebbe essere utile alla risoluzione del tuo caso.
    Il problema potrebbe essere sulla modalità di connessione FTP.
    Questo protocollo necessita di diverse porte per il suo corretto funzionamento.
    Quando il client FTP inizia un collegamento ad un server FTP, viene aperta sul server la porta 21.
    I dati (tutti) richiesti dal server, vengono restituiti al client tramite una porta dati. Il numero della porta per i collegamenti dei dati e il modo con il quale i suddetti collegamenti vengono inizializzati, varia a seconda se il client.
    Il tuo potrebbe essere un problema di comunicazione in modalità attiva, cioè il metodo originale per l'invio dei dati dal server al client FTP.

    Prima del trasferimento dati, il server apre un collegamento dalla porta 20 sul server per l'indirizzo IP, e una porta non privilegiata randomica (maggiore di 1024) specificata dal client.

    Tagliando corto.......questo significa che la macchina del client deve essere abilitata ad accettare i collegamenti attraverso qualsiasi porta al di sopra della 1024 ma deve anche avere l'abilitazione sulla porta 21.

    Nel tuo PC non c'è nessun provlema perchè, probabilmente, non hai nessun blocco o firewall che impedisce il collegamento.
    Nel router, è probabile che tali porte siano bloccate dal firewall proprietario.
    Devi semplicemente aprirle.

    Se inoltre i computer di cui parli sono connessi ad un firewall esterno al router, dovresti abilitare anche li le porte di cui ho parlato.

    Ciao.

    Dalimix
    @DX@

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.