begin process at 2012 05 29 15:43:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

petite prise de tete avec realisation serveur ftp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

petite prise de tete avec realisation serveur ftp

mardi 29 novembre 2005 à 17:44:33 | petite prise de tete avec realisation serveur ftp

ebooserge

salut a tous,
voila je suis en train de realiser un petit serveur ftp et jusque la ca va pas trop mal.
j'ai créé 2 threads, l'un pour le canal de control sur le port  21 et  l'autre pour le canal  de données sur le  port  20 ou sur le port 1030 en fonction du mode PORT ou PASV.
pour ceux qui connaissent un peu la rfc, mon pb est liée a la reponse a la commande LIST qui demande de lister le contenu du repertoire courant.
le serveur est censé renvoyé sur le canal de données la description des différents fichiers contenus dans le repertoire courant (nom fichiers, taille, date creation etc etc) mais le probleme c'est que je n'ai vu nul part la facon dont il faut les envoyer! est ce qu'il faut faire des trucs du genre pour chaque fichier:
file: nom_fichier\n
size: taille_fichier\n
etc etc
la rfc n'est pas tres claire la dessus!! et les exemples sur google ne foisonnent pas.
je sais que c'est pas un pb lié au C++ mais je sais pas ou demander  . En plus je le fais en C++ et je compte le soumettre une fois terminé demain ou apres demain pour vos critiques.
PLIZ  HELP.
mardi 29 novembre 2005 à 17:51:19 | Re : petite prise de tete avec realisation serveur ftp

ebooserge

petite precision:
avec la commande NLST ca marche sans pb car on envoie juste les nom des fichiers du repertoire séparé par un <CRLF>
\n en c++ sans autres informations.

mardi 29 novembre 2005 à 18:32:48 | Re : petite prise de tete avec realisation serveur ftp

fredcl

Justement, la rfc est assez claire, le serveur renvoie les données avec le format qu'il veut du moment que c'est compréhensible par un humain.
Mais souvent (du moins sous Unix) les données arrivent dans ce genre là :
drwxr-xr-x 1 ftp ftp              0 Sep 05 19:27 bin
-r--r--r--   1 guilhem  lavaux      12738 Jan 16 20:17 cmndata.cpp
J'ai même vu des serveurs sous Windows renvoyer ce même format. On peut prévoir avec plus ou moins de chance le format de ces données en examinant la réponse à la commande SYST. De mémoire un serveur utilisant un format différent renvoi une chaine contenant Windows_NT (à vérifier) en réponse à la commande SYST, mais je ne connais pas le nom de ce serveur  (mais j'ai déjà rencontrer ce cas sur un client).

Cordialement

Fred Cailleau-Lepetit ( [ Lien ])

mardi 29 novembre 2005 à 18:53:48 | Re : petite prise de tete avec realisation serveur ftp

ebooserge

merci fred de la precision.
juste une chose: en effet j'ai vu que meme les serveurs ftp avaient pour mauvaise habitude de repondre UNIX a la commande SYST. etant donné que je vais pas recréer la roue, moi aussi j'ai mis unix.
par contre si tu pouvais m'indiquer sur la rfc la partie qui traite de la reponse a la commande LIST ca m'aiderait beaucoup.

mardi 29 novembre 2005 à 19:02:30 | Re : petite prise de tete avec realisation serveur ftp

fredcl

A votre service ;-)

Extrait RFC 959 (traduction française)

4.1.3. COMMANDES DE SERVICE FTP
...
LIST (LIST)    CATALOGUE DU REPERTOIRE COURANT
Cette commande provoque l'émission par le serveur d'une liste de fichiers au DTP passif. Si le chemin mentionné spécifie un répertoire ou tout autre groupe de fichiers, le serveur répondra par une liste des fichiers dans ce répertoire ou ce groupe. Si le chemin spécifie un fichier normal, alors les informations système relatives à ce fichier seront renvoyées. Une absence d'argument indique par défaut le répertoire courant. La réponse est transférée via le canal de données pour les types ASCII ou EBCDIC. (l'utilisateur doit s'assurer que le type est effectivement ASCII ou EBCDIC). Comme les informations relatives à un fichier peuvent varier grandement en forme et présentation entre divers systèmes, celles-ci seront généralement peu exploitable par un automate. Elles sont cependant fort utiles pour un utilisateur humain.

Cordialement

Fred Cailleau-Lepetit ( [ Lien ])

mardi 29 novembre 2005 à 19:16:49 | Re : petite prise de tete avec realisation serveur ftp

ebooserge

je te remercie fred.
mais j'avais deja lu cet extrait
mais il n'est pas dit par exemple que la chaine reponse a envoyer sur le canal de données doit commencer par les droits, enuite le type de fichier, puis la date de creation, ensuite le nom de fichier etc etc
mais bon au moins j'ai deja une indication avec l'exemple que tu m'as donné plus haut.
je le teste d'abord et si ca marche, j'accepterai ta reponse et je te paierai un pot
je te tiendrais au courant ... merci
mardi 29 novembre 2005 à 19:28:31 | Re : petite prise de tete avec realisation serveur ftp

fredcl

Il n'est pas donné d'exemple car il est dit ceci "Comme les informations relatives à un fichier peuvent varier grandement en forme et présentation entre divers systèmes, celles-ci seront généralement peu exploitable par un automate. Elles sont cependant fort utiles pour un utilisateur humain."

Je ferais juste un commentaire supplémentaire sur le format de date, je l'ai toujours rencontré sous cet forme "Sep 05 19:27" avec toujours le même nombre de caractère juste parfois pour certain fichier ou c'était "Sep 05  2004" donc année à la place de l'heure mais toujours sur 5 caractères (il y a deux blanc après le numéro du jour). Voilà c'est tout ce que j'ai trouvé dans mes recherches, j'espère que celà t'aideras.

Cordialement

Fred Cailleau-Lepetit ( [ Lien ])



Cette discussion est classée dans : fichier, port, ftp, serveur, canal


Répondre à ce message

Sujets en rapport avec ce message

FTP Serveur : Taux de tranfert d'1 fichier [ par bergou ] Avec MFC : FTP serveurquelle est l'instruction qui me permet de connaitre le taux de transfert d'un fichier par rapport au modem ?MerciBergou recuperer des fichier d'un serveur ftp [ par cobra176 ] j'ai creer un programme de recherche pour fichier log mais maintenant je dois les récuperer sur un serveur ftp et je n'es jamais vu comment utiliser u FTP, connaitre la date de modification d'un fichier sur un serveur FTP [ par deck_bsd ] Yop à tous,Voila je voulait savoir si il y avait moyen de connaitre la date de modif d'un fichier sur un serveur FTP sans le télécharger ? Pour la con Ecriture dans un fichier texte sur un serveur ftp via C++ [ par projetge2i ] Bonjour, Je suis débutant en C++ et j'essaye de créer une application qui doit écrire dans un fichier .txt qui se situe sur un serveur ftp. J'ai trouv Connexion à un serveur unix avec ftp [ par staik194118 ] Bonjour les amis je dois me connecter sur un serveur unix(bien particulier) depuis ma machine (ubuntu) et ce via une connexion ftp afin de récupé Creation serveur FTP [ par fabricioliking ] BonjourVoila je suis actuellement à la recherche d'informations concernant la création d'un serveur ftp.En faite j'ai pour projet de créer une applica Telecharger un fichier sur un ftp [ par fabricioliking ] Bonjour, Me revoila avec cette fois-ci un nouveau petit problème. Je suis en train de développer un client FTP et j'aimerai pouvoir télécharger des f Creer un serveur FTP sous Builder 6 [ par fabricioliking ] Voila je cherche simplement à pouvoir créer un serveur FTP sous builder 6.Mon soucie c'est qu'il n'y a pas les composants nécéssaires sur l'IDE pour l Automatisation ftp [ par Nostaroth ] Voila, sa fait un peu bricolage, mais c'est pour me depanner, je voudrait automatiser l'envoi de fichier type texte (site web) sur un serveur ftp tous [Qt] Obtenir une arborecense d'un serveur ftp [ par jyz93 ] Bonjour a tous,Voila Je suis en train de programmé un client ftp et j'ai besoin d'obtenir l'arborescence du serveur sur lequel je suis connecté afin d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales