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 :

Programmer une fonction joindre_fichier


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Programmer une fonction joindre_fichier
    Bonsoir,
    Voila je suis en train de programmer une fonction qui va me permettre de prendre un fichier , le code en base64 et le mettre dans un buffeur que j'envoi ensuite via une socket. Donc j'ai penser a deux solutions :

    1er solution : joindre_fichier(nomfichier,buffer)
    On ouvre le fichier, on lit et encode en mettant le resultat dans buffer

    2eme solution : joindre_fichier(nomfichier,buffer)
    On ouvre le fichier, on lit et encode le resultat dans un fichier
    temporaire.
    On alloue buffer de la taille de ce fichier temporaire et on colle le contenu de ce fichier temporaire.

    Bon tant bien, mes solutions sont deprecated. Car deja dans la premiere il va falloir faire un malloc pour le buffer, donc savoir combien de taille va prendre le fichier en encoder base64. Ensuite dans la deuxieme, si le fichier temp existe deja, ca va l'ecraser, il va falloir gerer ca et aussi elle demande plus d'entré sorties que la premiere. Et surtout c'est le probleme de bufferoverflow qui me fait peur.
    Ensuite pensez vous que l'envoi d'un fichier via une socket, peut se faire comme ca via un buffer d'un seul coup, ou est-il preferable d'envoyer par paquet de taille definie en lisant un fichier contenant le code base64 ?

    Merci de vos conseils,
    Ciao,

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par leCcsympas
    Ensuite pensez vous que l'envoi d'un fichier via une socket, peut se faire comme ca via un buffer d'un seul coup, ou est-il preferable d'envoyer par paquet de taille definie en lisant un fichier contenant le code base64 ?
    http://emmanuel-delahaye.developpez....eaux.htm#texte

    Le même raisonnement s'applique aux données binaires.
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut merci
    Merci de ce lien qui permet d'expliquer l'utilisation d'envoi, par bloc.
    Mais en dehors de l'envoi, dans un premier temps, quel est la solution que je devrai utiliser la 1er ou la 2nd ou une autre.
    Merci

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par leCcsympas
    quel est la solution que je devrai utiliser la 1er ou la 2nd ou une autre.
    Je ne pense pas qu'il soit utile de passer par un fichier intermédiaire, sauf si ça simplifie l'implémentation...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    Points : 31
    Points
    31
    Par défaut oki
    Donc lorsque que je vais ecrire le code64 du fichier dans mon buffer, faut-il que je fasse un malloc au prealable sur mon buffer, ou puis-je utiliser un char* , mais n'aurais-je pas des probs de gestion memoires ?
    Merci,

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par leCcsympas
    Donc lorsque que je vais ecrire le code64 du fichier dans mon buffer, faut-il que je fasse un malloc au prealable sur mon buffer, ou puis-je utiliser un char* , mais n'aurais-je pas des probs de gestion memoires ?
    Merci,
    Tu peux faire un malloc() d'une taille raisonnable, et ensuite des realloc() si nécessaire.

    Je te conseille de passer du temps à manipuler séparément ces fonctions pour en tester l'utilisation. Ce n'est pas trivial et une erreur est fatale (débordement de mémoire).
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. programmer une fonction affiche
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 04/01/2009, 10h49
  2. programmer une fonction par VB
    Par bahja_83 dans le forum Windows
    Réponses: 1
    Dernier message: 21/04/2008, 23h41
  3. Programmer une fonction réciproque
    Par bichou dans le forum MATLAB
    Réponses: 4
    Dernier message: 20/06/2007, 15h34
  4. programmer une fonction
    Par Maria1505 dans le forum Visual C++
    Réponses: 3
    Dernier message: 30/04/2007, 19h00
  5. Réponses: 10
    Dernier message: 11/01/2007, 21h45

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