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
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    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
    Avatar de Emmanuel Delahaye
    Profil pro
    Retrait�
    Inscrit en
    D�cembre 2003
    Messages
    14 512
    D�tails du profil
    Informations personnelles :
    �ge : 69
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 14 512
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    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
    Avatar de Emmanuel Delahaye
    Profil pro
    Retrait�
    Inscrit en
    D�cembre 2003
    Messages
    14 512
    D�tails du profil
    Informations personnelles :
    �ge : 69
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 14 512
    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...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 49
    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
    Avatar de Emmanuel Delahaye
    Profil pro
    Retrait�
    Inscrit en
    D�cembre 2003
    Messages
    14 512
    D�tails du profil
    Informations personnelles :
    �ge : 69
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 14 512
    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).

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