Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Réseau
Réseau Forum d'entraide sur la programmation réseau en C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/11/2012, 09h57   #1
hazaki
Futur Membre du Club
 
mouloud jean
Inscription : septembre 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : mouloud jean

Informations forums :
Inscription : septembre 2010
Messages : 84
Points : 16
Points : 16
Par défaut Exécuter la commande LIST sur un serveur

Bonjour,
Je dois réaliser un mini client FTP capable de contacter un serveur, lister les
chiers proposes et telecharger l'un d'eux.
J'ai réussi à me connecter au serveur via une socket puis m'identifier en envoyant via la socket "USER anonymous" puis "PASS ..." et j'ai bien reçu le "230 Login succesful".
J'ai envoyé avec succés plusieurs commande comme HELP et PWD qui me renvoient des réponses censées mais quand j'essaye avec LIST, le serveur m'envoie "425 Failed to establish connection.".
Que dois-je faire ?

Merci pour vos réponses
hazaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 10h58   #2
matafan
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 482
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 482
Points : 2 438
Points : 2 438
Pour un LIST ça se passe sur la socket de données, pas la socket de commandes. Ca veut dire que suite à ta commande LIST, le serveur tentera de se connecter au port 20 (port de données par défaut) de ton client pour y envoyer le listing des fichiers. Si tu n'as pas de socket à l'état LISTEN sur le port 20 de ton client, la connexion ne peut pas se faire et tu as le message que tu vois.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h42   #3
hazaki
Futur Membre du Club
 
mouloud jean
Inscription : septembre 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : mouloud jean

Informations forums :
Inscription : septembre 2010
Messages : 84
Points : 16
Points : 16
Merci beaucoup pour ta réponse.
Donc cela veut dire que je dois créer une deuxième socket connectée au port 20 pour exécuter cette commande ?
hazaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 12h53   #4
matafan
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 482
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 482
Points : 2 438
Points : 2 438
Pas pour exécuter la commande ; pour recevoir la réponse du serveur.

Les commandes sont toujours envoyés sur la connexion "commande", qui écoute sur le port 21 du serveur FTP. Certaines réponses (à GET et LIST par exemple) sont envoyées par le serveur sur la connexion "donnée", qui écoute sur le port 20 (par défaut ; tu peux utiliser un autre port et utiliser la commande PORT pour en notifier le serveur) du client FTP.

Sauf si tu fais du FTP en mode passif. Dans ce mode les deux connexions (commandes et données) sont ouverte par le serveur FTP. Mais tout est expliqué dans la RFC du protocole FTP... Un peu de lecture s'impose.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 05/11/2012, 13h45   #5
hazaki
Futur Membre du Club
 
mouloud jean
Inscription : septembre 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : mouloud jean

Informations forums :
Inscription : septembre 2010
Messages : 84
Points : 16
Points : 16
C'est bon j'ai réussi !
hazaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h34.


 
 
 
 
Partenaires

Hébergement Web