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 :

Pb transfert structure par socket


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 51
    Par défaut Pb transfert structure par socket
    Bonjour à tous,

    Je dois transférer un fchier par socket d'un client vers un serveur.
    Pour ce faire, je souhaite en premier lieu, envoyer une structrue contenant la taille et le nom du fichier. Le rpoblème est que si je récupère bien la taille, je n'ai pas le nom du fichier

    Cette structure est déclarée dans mon client et dans mon serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct head  
    {
      int size;
      char *FichierTransfertSock;
    };
    Côté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    struct head entete;  
      // Envoi des références du fichier à* transférer
      entete.size=TailleFichier(FichierTransfert);
      entete.FichierTransfertSock = FichierTransfert;
      nbchar = send(sock, (char *)&entete, sizeof(struct head),0);
      if (nbchar != sizeof(entete))   
      {
        printf("erreur envoi structure head");
        close(sock);
        exit(2);        
      }
    J'ai fait de sprintf pour vérifier que les éléments de ma strcuture soit bien valorisé et c'est ok.

    Côté serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      struct head entete; 
      nbchar = recv(sock_service,(char *)&entete,sizeof(struct head),0);  
      printf("fichier à créer : %s  Taille fichier : %d\n",entete.FichierTransfertSock,entete.size);
    Les printf me donnent le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fichier à créer :   Taille fichier : 256
    Forcément derrière cela me pose un problème puisque le client m'envoie des lignes que je dois stocker dans un fichier pour lequel je n'ai pas de nom......

    Pour plus d'infos, un zip de mes sources :
    Merci d'avance pour l'aide que vous pourrez m'apporter.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Envoyer Objet / Structure par socket TCP
    Par crazy33 dans le forum C++
    Réponses: 5
    Dernier message: 21/11/2010, 20h49
  2. Transfert fichier par socket
    Par allserv dans le forum Réseau
    Réponses: 1
    Dernier message: 21/10/2008, 16h30
  3. [C#] Envoi d'une structure par un(e) socket
    Par joprog dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/03/2007, 11h29
  4. Transfert d'une image par socket stream
    Par francky23012301 dans le forum Langage
    Réponses: 1
    Dernier message: 31/10/2005, 16h06
  5. Transfert de fichiers par sockets
    Par Kaori dans le forum C++
    Réponses: 19
    Dernier message: 26/01/2005, 13h58

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