Aide client FTP

Aide client FTP - C++ - Programmation

Marsh Posté le 13-12-2007 à 17:41:02    

Bonjour à tous,
dans le cadre d'un projet je dois réaliser un client FTP se connectant sur un serveur.
J'ai réussi à créer la connexion avec le serveur (en mode passif), à afficher le repertoire du serveur dans une listbox mais je n'arrive pas télécharger un fichier.  
La commande RETR envoyée de mon client est acceptée par le serveur (access allowed) mais le serveur m'envoie une erreur : 425 Cannot open data connection.
 
Si quelqu'un pourrait m'aider ce serait super sympa, ce projet est très important pour moi (je suis etudiant).
 
Merci.
 
(Si vous voulez voir mon code, je peux vous l'envoyer en MP, ou par mail).

Reply

Marsh Posté le 13-12-2007 à 17:41:02   

Reply

Marsh Posté le 13-12-2007 à 17:53:32    

Y a pas une histoire de deux ports avec le protocole ftp, un pour les commandes, et l'autre pour les données ?

Reply

Marsh Posté le 13-12-2007 à 18:11:49    

Exactement en fait c'est ça le problème
 
ya un port de commande pour établir la connexion avec le serveur (port 21 par défaut)
et vu qu'on travaille en mode passif le port de données est fixé par le serveur.
pour le premier port (21), la connexion s'établie avec succès  
Mais la première fois qu'on utilise le port de données (suite à la commande pasv)  pour le listage des fichiers il n'y a pas de problèmes, par contre
quand on veut le réutiliser pour télécharger le fichier ça ne marche plus  
 
Si tu veux je peux t'envoyer mon code pour avoir une idée plus claire  
merci d'avoir répondu

Reply

Marsh Posté le 13-12-2007 à 21:35:13    

Merci d'avoir répondu.
J'ai finalement réusi à télécharger un fichier sur le serveur.
Mais j'ai un autre problème, j'arrive à télécharger un fichier d'une taille inférieure ou égale au buffer (8ko) mais je ne sais pas comment récupérer un fichier de taille supérieure.
Je pense créer une classe (temporaire) qui récupèrerait les buffers et les assemblerait pour reconstituer mon fichier mais je ne vois vraiment pas comment je pourrais m'y prendre.
 
Est-ce que quelqu'un aurait une idée?  
 
Merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed