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 :

Délimiter des datas


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Par défaut Délimiter des datas
    bon voila j'aimerais délimiter une suite d'information envoyer par le reseau

    pour evité d'envoyer la taille
    donc je m'explique :

    |STX| |.......data........| |ETX|


    STX correspond a la valeur 2 de la table ascii et ETX correspont a la valeur 3.

    donc premiere question si je lis un fichier pour l'envoyer par le reseau
    est ce que cé code acii risque de ce trouver dans les donné car je ne veu pas utiliser de charactere d'echapement .
    Et est ce que c'ette methode donne des resultat performent ?


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    bool VerifEndFlag(char buffer[]);
    {
         for (int i = 0 ; i< 200; i++)
         {
            if (buffer[i] == 0x03)
                          return true ;  
         }
          return false ;
    }
     
     
    //boucle de recption 
     
    char buffer[200]; 
     
      while (1){
     
          recv (buffer,(taille=200))
           // ajout de buffer dans un conteneur de reception
                ajoute(buffer);
           if  ( VerifEndFalg(buffer))
                         break;
     
     
    }

  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 : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Délimiter des datas
    Citation Envoyé par tomy78
    bon voila j'aimerais délimiter une suite d'information envoyer par le reseau

    pour evité d'envoyer la taille
    donc je m'explique :

    |STX| |.......data........| |ETX|

    STX correspond a la valeur 2 de la table ascii et ETX correspont a la valeur 3.
    Oui, peu importe la valeur. Il suffit de définir un symbole et de lui affecter une valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define STX 2
    #define ETX 3
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    enum
    {
       STX = 2,
       ETX = 3, /* ou ETX,  si on maintient la sequence ordonnee... */
      dummy
    };
    donc premiere question si je lis un fichier pour l'envoyer par le reseau
    est ce que cé code acii risque de ce trouver dans les donné car je ne veu pas utiliser de charactere d'echapement .
    Et si tu te renseignais sur ce qu'est exactement le code ASCII ? Ces valeurs en font précisément partie et sont conçues pour ne pas être des caractères et donc peuvent servir de délimiteurs. Ce sont les caractères de contrôles. Il doit même y avoir des protocoles de transmission plus ou moins normalisés basés sur ces caractères. Tout ceci n'a strictement rien à voir avec le langage C...
    Et est ce que c'ette methode donne des resultat performent ?
    Je ne sais pas. C'est une question de conception de réseau. Je ne comprends toujours pas pourquoi tu demandes ça sur un forum consacré au langage C... Il existe un forum "Développement réseau".
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    bool VerifEndFlag(char buffer[]);
    {
         for (int i = 0 ; i< 200; i++)
         {
            if (buffer[i] == 0x03)
                          return true ;  
         }
          return false ;
    }
     
     
    //boucle de recption 
     
    char buffer[200]; 
     
      while (1){
     
          recv (buffer,(taille=200))
           // ajout de buffer dans un conteneur de reception
                ajoute(buffer);
           if  ( VerifEndFalg(buffer))
                         break;
     
     
    }
    Pour une bonne utilisation des sockets, le mieux est de coder, tester et mesurer les performances. Le C ne définit rien en terme de performance. C'est encore une fois une question de conception et non de langage.

    Par contre, ce qui concerne le langage C, c'est l'utilisation des bons types de variables. Je recommande le type unsigned char pour les flux d'octets.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Par défaut
    ok donc les valeurs de la table compris entre 0 et 32 sont reserver et je ne risque pas de les trouver dans un fichier enfet cé sa que je voulais savoir

    http://www.lookuptables.com/

    Sinon merci pour ta reponce

  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 : 68
    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 tomy78
    ok donc les valeurs de la table compris entre 0 et 32 sont reserver et je ne risque pas de les trouver dans un fichier enfet cé sa que je voulais savoir
    0..31. 32, en ASCII, c'est l'espace (' ')...

    P.S. Soigne ton orthographe, tu es limite incompréhensible...

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Si, tu risques de les trouver dans tout fichier texte comportant un retour à la ligne (caractère \r (13) et/ou \n (10)) ou encore des tabulations \t (9)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Par défaut
    ok et bien quel valeur puisje utiliser pour mon flag de fin ??

    ps : dsl pour l'orthographe je fait pas expré

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    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 tomy78
    ok et bien quel valeur puisje utiliser pour mon flag de fin ??

    ps : dsl pour l'orthographe je fait pas expré
    ETX, EOT quand c'est vraiment fini...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Par défaut
    ok et bien je vais faire comme sa alors merci pour vos réponces

Discussions similaires

  1. [Lazarus] Mettre des data dans un exécutable
    Par JoseF dans le forum Lazarus
    Réponses: 3
    Dernier message: 16/10/2006, 17h29
  2. [C#][Débutant] Comment gerer des datas dans une form
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/04/2006, 00h10
  3. algorithme de compression des data en format PNG
    Par vbany dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 07/04/2006, 14h08
  4. Réponses: 5
    Dernier message: 02/02/2006, 23h31
  5. Réponses: 2
    Dernier message: 08/08/2005, 13h54

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