Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1678 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Concaténation des caractères non signés

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Concaténation des caractères non signés

n°2071717
sloumanaw
Posté le 22-04-2011 à 21:17:54  profilanswer
 

Bonjour,
 
Je cherche un petit programme en C++ qui envoi et reçoit des trames à partir d’une interface Ethernet (soit à l’aide de winpcap ou autre). Svp si quelqu’un dispose d’un code source qui peut m’aider pour gagner du temps et mieux avancer car je suis débutante en C++ et j’ai vraiment besoin de cette partie de programmation afin d’accomplir un autre travail.  
 
Sinon j’essaye entre temps, de coder toute seule en utilisant visual C++ 2010. Mais j’ai encore un petit problème car en codant la couche transport j’ai besoin de construire un paquet UDP donc je dois concaténer l’entête UDP avec le message que je souhaite envoyer.
 
j’ai pensé à la fonction strcat(chaine1,chaine2) mais ça n’était pas la solution vu que mes variables sont de type caractère non signé et cette fonction permet seulement de concaténer les chaines de caractère signé. Alors j’ai pensé à les mettre dans une structure comme suit
 
struct packetUDP          
{  
    unsigned short UDPportSrc;
    unsigned short UDPportDest;
    unsigned short UDPlength;
    unsigned short UDPchecksum;
    unsigned char Message[500];
};
 
Est-ce que c’est la bonne solution svp? Sinon comment je fais. Parce que j’ai pensé aussi à la fonction  
 
void * memcpy ( void * destination, const void * source, size_t num );
 
ma question peut être débile :( mais J’ai vraiment besoin de votre aide svp. merci pour votre temps.
 

mood
Publicité
Posté le 22-04-2011 à 21:17:54  profilanswer
 

n°2071718
gilou
Modérateur
Modzilla
Posté le 22-04-2011 à 22:20:44  profilanswer
 

strcat, que les caractères soient signés ou pas, c'est pas trop son problème en fait. strcat se contente de recopier des octets, jusqu’à ce qu'il rencontre un 0, sans se préoccuper de la valeur des dits octets ni de leur interprétation comme des données signées ou non. Si le compilo fait des siennes, il suffit de caster:

Code :
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4. void main ()
  5. {
  6.     unsigned char a[9] = "toto";
  7.     unsigned char b[5] = "tutu";
  8.     strcat((char *)a, (char *)b);
  9.     cout << a;
  10. }


A+,


Message édité par gilou le 22-04-2011 à 22:25:29

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2071722
sloumanaw
Posté le 22-04-2011 à 23:29:04  profilanswer
 

merci bcp Gilou,ça marche parfaitement. mais vu que j'essaye de concaténer plusieurs éléments afin de construire un paquet UDP, j'ai crée la structure structure suivante:
 
struct enteteUDP
{  
   unsigned short UDPportSrc;
   unsigned short UDPportDest;
   unsigned short UDPlength;
   unsigned short UDPchecksum;
   unsigned char Message[500];
};
 puis j'ai fait comme suit:
strcat(struct EnteteUDP,char *Message);
 
la génération était réussite!! la fonction strcat n'était pas pour concaténer seulemnt des chaines de caractères? la structure est considérée comme chaine de caractères?
désolée si c un peu bête mais je suis entrain d'essayer de comprendre de plus en plus le C++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Concaténation des caractères non signés

 

Sujets relatifs
comment extraire plusieurs chaine de caracteres d'un fichier ???Scheme - Traitement chaîne caractères
[Resolu] Valider formulaire lorsqu'un champ text a atteind 10 chiffres[Réglé] Caractères spéciaux BDD vers HTML
Formatter des caractères[PHP-RegEx] Remplacer des expressions par des caractères
Phpmyadmin et caractères html[Ada] [Résolu] Problème d'encodage de caractères avec Ada sur Windows
[VBA Access] parcourir chaine de caractères[RESOLUS][Mysql/phpmyadmin] Extraction csv et les caractères spéciaux.
Plus de sujets relatifs à : Concaténation des caractères non signés


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR