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

Réseau C Discussion :

Envoi de fichier


Sujet :

Réseau C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Par défaut Envoi de fichier
    Bonjour,

    J' éssaye de faire un programme pour envoyer des fichiers en utilisant les socket.
    J'ai écris cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void envoyeFichier(SOCKET sock,char nFichier)
    {
        char buffer[1024];
        FILE* fichier;
     
        fichier =  fopen(nFichier,"rb");
     
        while(!feof(fichier))
        {
            fgets(buffer,1024,fichier);
            send(sock,buffer,sizeof(buffer),0);
        }
        fclose(fichier);
    }
    Mais j'ai une erreur de segmentation (SIGSEGV) au niveau du fgets() ou du send() du moins je crois.
    Je ne sais pas non plus si c est la meilleur façon de procédé!
    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    - Erreur dans la déclaration des paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void envoyeFichier(SOCKET sock,char *nFichier)
    - Il faut toujours tester si l'ouverture d'un fichier a réussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      fichier =  fopen(nFichier,"rb");
      if(fichier != NULL)
      {
        .....
      }
      else ....
    - Mauvaise utilisation de feof(). Utiliser la construction classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       while(fgets(buffer,1024,fichier) != NULL) 
       {    
          send(sock,buffer,sizeof(buffer),0);
       }

Discussions similaires

  1. [debutant] envoi de fichier
    Par djchow dans le forum MFC
    Réponses: 8
    Dernier message: 21/03/2005, 16h57
  2. [HTTP] Envoi de fichiers par http
    Par Delendial dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 03/09/2004, 09h37
  3. [Débutant] Envoi de fichier par socket
    Par zapho dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 26/05/2004, 18h58
  4. [C#] Envoi de fichier xml
    Par minnieBis dans le forum ASP.NET
    Réponses: 16
    Dernier message: 25/05/2004, 14h28
  5. [Socket]envoie de fichier!!!
    Par SamDaKap dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/11/2002, 08h07

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