IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[reseau] client ftp pour telechargement d'un fichier


Sujet :

C++

  1. #1
    Membre du Club Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Points : 59
    Points
    59
    Par défaut [reseau] client ftp pour telechargement d'un fichier
    J'ai un pc, et un microcontrolleur SC12. Le microcontrolleur est relié a des capteurs, et j'ai déja réalisé un programme interne au SC12 qui enregistre les données des capteurs dans un fichier (. txt).

    Maintenant, je voudrais telecharger ce fichier sur un PC distant, en le reliant au SC12 par un cable ethernet. Vu que le SC12 intègre déjà un serveur ftp, j'ai donc choisit de le faire en programmant un client ftp sur le PC. Je vais donc coder ce programme en C++.

    Le problème c'est que je ne m'y connais pas du tout en ftp. Alors j'aimerai bien qu'on mi'indique la marche à suivre.

    Est-ce que je dois faire exactement comme un serveur tcp en changeant le port?
    Si oui, quelles finction je dois utiliser pour télécharger le fichier?

    Merci pour votre aide.

  2. #2
    Membre du Club Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Points : 59
    Points
    59
    Par défaut
    Alors, ya personne qui peut m'aider ?

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Le FTP est vraiment un des protocoles les plus complexes à gérer... Encore le TFTP....

    Si tu es sur un PC avec winwin... rien ne t'empeche d'utiliser les fonctions InternetXXXXXX ... ca évite déjà de coder un truc qui marche pas

    Si vraiment tu y tiens de faire ton client FTP avec des sockets, alors oui... il y a pas le choix: le transfert des données se fait sur un autre canal que la connection FTP initiale... Le choix des ports de cette nouvelle connection étant de ton côté (mode 'actif') ou du coté serveur (mode 'passif').

  4. #4
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 13
    Points
    13
    Par défaut


    Je ne vais pas pouvoir t'aider pour ton problème de ftp mais ne pourrais-tu pas envoyer les données qu'est censé contenir ton fichier texte par tcp (donc par socket, c'est pas compliqué) et de recréer ton fichier texte sur la machine distante ??

    J'dis ca ...

  5. #5
    Membre du Club Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Points : 59
    Points
    59
    Par défaut
    c'est ce que je devais faire au départ, le problème, c'est qu'en faisant de cette manière, il n'y a pas assez de place sur le SC12 pour y mettre le code d'un serveur tcp. je n'ai donc pas le choix

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    toutes les specifications du ftp sont expliquées dans la rfc 959

    http://www.faqs.org/rfcs/rfc959.html

  7. #7
    Membre du Club Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Points : 59
    Points
    59
    Par défaut
    Bon, apres une tres longue recherche, j'ai trouvé comment faire? je met le code, au cas ou ca interesserai quelqu'un :

    DWORD dwServiceType;
    CInternetSession* m_pInetSession;
    CFtpConnection* m_pFtpConnection;
    CSttring Adresse_du_serveur


    /* Connection au serveur ftp */
    m_pFtpConnection = NULL;

    m_pInetSession = new CInternetSession(NULL, 1, PRE_CONFIG_INTERNET_ACCESS);

    if (!m_pInetSession)
    {
    AfxMessageBox("Echec lors de la connection", MB_OK);
    OnCancel();
    }


    try
    {

    m_pFtpConnection = m_pInetSession->GetFtpConnection(Adresse_du_serveur);
    }
    catch (CInternetException* pEx)
    {
    TCHAR szErr[1024];
    if (pEx->GetErrorMessage(szErr, 1024))
    {
    AfxMessageBox(szErr, MB_OK);
    }
    else
    {
    AfxMessageBox("erreur de connection", MB_OK);
    }
    pEx->Delete();
    m_pFtpConnection = NULL;
    }


    /* Telecharger fichier : */
    BOOL erreur;

    erreur= m_pFtpConnection->GetFile("FICHIER.txt", "H:\\TheFichier.TXT",TRUE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_ASCII);

    /* Pour se deconnecter : */
    delete m_pInetSession;



    Voila.
    Il ne faut pas oublier d'inclure la librairie : #include "afxinet.h"


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier log pour client FTP
    Par timoun dans le forum OVH
    Réponses: 2
    Dernier message: 05/12/2013, 18h19
  2. Macro pour depot D'un Fichier CSV sur fileZilla FTP Client
    Par Sk_ca dans le forum Général VBA
    Réponses: 1
    Dernier message: 23/10/2012, 12h02
  3. Connexion par ftp pour aller placer des fichiers .xml
    Par duvelmoi9 dans le forum Connexions aux bases de données
    Réponses: 1
    Dernier message: 30/12/2010, 02h08
  4. comment utiliser le module ftp pour telecharger un .tgz?
    Par Mydriaze dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 23/07/2009, 13h13
  5. Réponses: 0
    Dernier message: 15/03/2009, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo