View Full Version : [VB] Log-Out da connessioni FTP
Ormai sarò diventato l'incubo di matpez, però sto lavorando ad un progettone... e non posso mollare ora.
Quindi mi appello a chiunque abbia realizzato programmi VBasic con connessioni FTP.
La connessione mi funge, ma il problema è che alla fine mettendo
InternetCloseHandle(LConnection)
Non sembra fare il log out, perchè dopo 5 volte che premo il pulsante di invio di un file la connessione non funziona più... e fatalità la connessione al mio host sopporta 5 account per volta.
Se aspetto qualche minuto, poi la connessione torna a funzionarre.
Come posso fare?
Grazie, ciao
Io sinceramente in tutti i programmi di FTP nn ho mai visto il fatidico "log out" ... bho, poi magari esiste!
Cmq se trovo qlc te lo dico! :)
Perchè non usi una sola connessione che dura dall'inizio alla fine delle operazioni da fare sul server ?
Originariamente inviato da cionci
Perchè non usi una sola connessione che dura dall'inizio alla fine delle operazioni da fare sul server ?
Si penso anche io...perchè a me ha chiesyo un bottone per uppare un file...ma mi sa che poi lui nn ha portato via la connessione da quel bottone se deve lavaorare + spesso con l'FTP. :)
In pratica io devo sempre uploadare (verdo transitivo !!! ); ) qualcosa da pulsante, però può capitare che le variazioni del testo da mandare siano poche e che quindi gli invii siano più di 5 e piuttosto frequenti.
Come faccio a fare una unica connessione?
E' giusto fare così:
Metto
LOpen ....
lConnection = InternetConnect(lOpen, Host ...
Call rcd .....
quando carica il form
e poi nel pulsante metto solo
FtpPutFile(lConnection, sFi ....
e quando chiudo il programma dovrei fare il:
Call InternetCloseHandle(lConnection)
Giusto?
Però se apro il programma e non mando niente per 10 min e poi devo mandare, la connessione rimane?
Mi potete spiegare un attimo cosa serve la funz "rcd" rispetto alla "FtpPutFile" ?
Grazie
Quando fai FtpPutFile se il valore che ti ritorna è = 0 allora prova a riaprire la connessione...
Altrimenti studi un metdo simile al keepalive... Metti un timeout..ed ogni 10 secondi invii un comando FTP... Ad esempio FtpGetCurrentDirectory... In questo modo ils erver FTP non ti disconentte mai...
Ah oro!
Ma ho provato a fare:
InternetCloseHandle(nomedell'handle)
Ma mi da: tipo non corrispondente!
Ma de che?
Prima di definire il nomedell'handle con InternetConnection devo dichiararlo con Dim ?
Se lascio la connessione aperta e poi chiudo il programma.. è un prob?
Potreste dirmi come faccio a dichiarare le funzioni di Inet e dove trovo le costanti?
Es:
se volessi usare InternetCheckConnection e poi FTPGEtCurrentDirectory come devo fare?
Se mi serve sapere se la connessione fatta con InternetConnection è ancora attiva che comando devo usare?
Grazie, ciao
Originariamente inviato da beog
Potreste dirmi come faccio a dichiarare le funzioni di Inet e dove trovo le costanti?
Es:
se volessi usare InternetCheckConnection e poi FTPGEtCurrentDirectory come devo fare?
Se mi serve sapere se la connessione fatta con InternetConnection è ancora attiva che comando devo usare?
Grazie, ciao
Scarica API-Guide da www.allapi.net
FTPGEtCurrentDirectory può andar bene per vedere se la conenssione è sempre attiva... Ritorna 0 se la connessione non è più attiva...
ah ok.
Ma come mi ritorna il valore di FTPGetCurr... ?
Esempio:
If FtpGetCurrent(valori,valori,valori) = false then...
roba del genere?
Scusa ritornando a prima.. per fare il logout non potresti fare così?
Private Sub cmdDisconnetti_Click()
Inet1.Execute "", "qui il comando Dos per il logout via ftp"
End Sub
?
potrebbe essere, però quel INet1 come lo dichiaro?
Poi ho un'altro dubbio:
io mentre tengo abilitata la connessione FTP col ftpgetcurrentdir.. se dovessi prelevare un file però su HTTP, posso mantenere lo stesso internetOpen?
Andando poi a fare un Internetreadfile via HTTP rischio per diperdere l'altra connessione o lavorano anhe in parallelo?
Grazie , ciao
Dovrebbe essere sufficiente chiamare una sola volta InternetOpen in tutto il programma...
Ma InternetCloseHandle su cosa lo chiami ? Lo devi chiamare sull'handle ritornato da InternetConnect... Non è che lo chiami sull'handle di InternetOpen ? Forse è per quello che non ti chiude le connessioni...
Comunque il discorso della connessione persistente è sempre valido...
Sto tentanto una connessione permanete... però non è il max
Si ho capito come si chiude:
hconnection = internetconnet ...
internetclosehandle hconnection
giusto?
eppure ti posso assicurare che dopo 5 volte che premo connetti, la 6a non si connette più e devo asp qualche minuto.
anche se c'è il closehandle
e per quanto riguarda djcuca, qualce codice devo mettere?
grazie, ciao
Nono...non lo puoi fare come dice lui...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.