FTP avec winsock

FRatvks Messages postés 52 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 2 octobre 2009 - 10 août 2007 à 13:32
FRatvks Messages postés 52 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 2 octobre 2009 - 13 août 2007 à 12:13
Bonjour,

j'ai developpé un bout de code pour faire du FTP dans une appli,
j'ai decomposé chaque besoin
 la connection en mode PASSIV et recuperation du port de data
Le LIST du repertoire distant
Le GET pour recuperer un fichier
Le SENd pour l'envoi

Si je connecte et que je fais un LIST ou GET ou SEND ca marche impecable
Si je connecte et que je fait un LIST (je recupere les fichiers disponiblr sur le serveur) et que je fait un GET (qui marchait jusqu'ici) j'obtient unez reponse du serveur "425 Unable to build data connection : Invalid argument

meme chose si je fais deux fois le LIST : le premier passe bien et la relance me donne la meme erreur 425

Avez-vous une piste pour debugg ce problème ?

Autre Question : comment faire pour passer au travers d'un proxy en mode PASSIV ? (avec les winsocks bien sûr) ?

Merci pour votre aide et longue vie a ce site

Fr

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 août 2007 à 14:34
sur que ton serveur a finit de traiter ta demande ?

(voir Inet1.StillExecuting)
0
FRatvks Messages postés 52 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 2 octobre 2009
13 août 2007 à 12:13
Salut Renfield,

J'ai Enfin ! trouvé le bug : en fait il faut relancer la commande PASV a chaque fois que l'on veut faire une commande.
J'avais suivi les bouts de code su VB France, ils ont enchainé la commande PASV a la connection du port de commande après le login et le pass, donc ca marche 1 fois...pas la deuxieme puisque le port de data est refermé par le serveur a la fin de chaque opération !

Il me reste maintenant la difficulté de passer mon PROXY, pour le moment je' ai tité une ligne directe sur ma FREEBOX mais on doit normalement passer par une machine qui sert de PROXY pour l'ensemble des services de la boite.
Sur le proxy j'ai configuré que losque je demande le numero de port FTP XXX il me reroute vers le serveur WEB sur le port YYY
la connexion au seveur fonctionne mais j'e n'echange encore rien sur les  ports data
Existe t'il une autre soluce que le mappage de port sur le PROXY et la FREEBOX ?
Mon outil de FTP (Filezilla par exemple) me permet de declarer que je passe par un proxy et je n'ai pas besoin de faire de mappage sur le proxy ni meme la FREEBOX c''zst bien plus "directe"

 
0
Rejoignez-nous