begin process at 2012 05 28 22:10:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

Concaténation des chaines de caractères non signés en C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Concaténation des chaines de caractères non signés en C++

vendredi 22 avril 2011 à 21:33:49 | Concaténation des chaines de caractères non signés en C++

sloumanaw

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 est peu être débile :( mais J’ai vraiment besoin de votre aide svp. merci pour votre temps.

vendredi 22 avril 2011 à 22:04:25 | Re : Concaténation des chaines de caractères non signés en C++

BruNews

Administrateur CodeS-SourceS
Signé ou non signé n'entre pour rien dans l'affaire, ce sont toujours des octets.
strcat() traite des chaines qui sont des SUITES D'OCTETS FINISSANT AU 1er zéro rencontré. Dans les paquets UDP il peut fort bien y avoir des octets=ZERO donc exit strcat et autres fonctions de chaine.

On construit un paquet sur:
BYTE *pmem;

Code C/C++ :
BYTE* concatPaquet(BYTE *d, BYTE *data, int n) 
{ 
  int count = n;
  while(--n >= 0) d[n] = data[n]; 
  return (d + count); 
} 


EXEMPLE, concat de 3 blocs sur pmem:
d = concatPaquet(pmem, data1, 12);
d = concatPaquet(d, data2, 60);
d = concatPaquet(d, data3, 20);

A la finale tu feras un
sendto(sock, pmem, DWORD (d - pmem), ...);

ciao...
BruNews, MVP VC++
samedi 23 avril 2011 à 01:27:22 | Re : Concaténation des chaines de caractères non signés en C++

sloumanaw

merci infiniment!! je vais essayer et je vous mettrai au courant :)
samedi 23 avril 2011 à 01:32:48 | Re : Concaténation des chaines de caractères non signés en C++

sloumanaw

si j'ai bien combien je dois utiliser un socket client pour envoyer le paquet à la couche suivante qui doit contenir de même un socket serveur?
j'ai cru qu'on n'utilise les sockets que pour communiquer entre deux processus différents(deux ordinateurs..)


Cette discussion est classée dans : temps, chaines, short, unsigned, pensé


Répondre à ce message

Sujets en rapport avec ce message

pragma pack(push,2) [ par gagah1 ] salut à tous!Quelqu'un pourrait m'expliquer ça sert à quoi le macro:#pragma pack(push,2) et #pragma pack(pop) parceque quand je déclare une structure pb avec conio je cher cherche l'erreur( j'ai merde sur le mess precedent) [ par kin ] portpia.cpp#include"PortPiaPc.h"void main(){ PortPiaPc inst; inst(0x320,0x0f);}PortPiaPc.cpp#include "PortPiaPc.h"#include "conio.h"PortPiaPc::PortPia DLL sous C++ builder 6 [ par ivdz ] Bonjour,Voici une partie du .h de mon exécutable que je dois transformer en DLL (sous C++ builder 6) :#ifndef MODBUSTCPIP_H#define MODBUSTCPIP_Hclass Conversion unsigned short ---> char * [ par nemmezis ] Salut tout le monde,Ben tout est dit dans le titre; j'ai en fait besoin de convertir un unsigned short en char* afin de pouvoir le concaténer dans un envoi de paquet ip [ par sendouda ] Bonjour;j'ai écrit un programme qui permet d'envoyer des paquets ip à une destination.mais quand j'ai voulu le sniffer j'ai pas pu le capter.J'ai beso urgent:envoi paquet [ par sendouda ] Bonjour;j'ai écrit un programme qui permet d'envoyer des paquets ip à une destination.mais quand j'ai voulu le sniffer j'ai pas pu le capter.J'ai beso Algo de calcul d'un CRC16 [ par cestmat ] Bonjour,Je dois calculer un CRC avec le polynome utilisé dans HDLC (X^16 + X^12 + X^5 + 1).J'ai à peu prés compris le principe des CRC mais à chaque f Sniffing - raw socket [ par krum ] J'ai essayé de coder un programme capable de me donner la description de l'en tete IP et TCP des packets que je reçois d'une certaine IP,mais lorsque Problème avec ntohs et htons sous VS 2010 [ par marroucha ] Bonjour tout le monde, je suis entrain de développer une application qui récupère et affiche les trames réseau mais je confronte un pb de compilation [C] Temps d'exécution en ms [ par pitipilot ] Bonjour j'aimerai calculer le temps d'exécution d'un petit programme en C sous linux, j'ai essayé plusieurs code trouvé sur internet mais aucun ne me


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales