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

C++ Discussion :

erreur lors de l'envoie de donn� via les socket.


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    D�cembre 2005
    Messages
    134
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2005
    Messages : 134
    Par d�faut erreur lors de l'envoie de donn� via les socket.
    bonjour tout le monde.

    Je me gal�re vraiment sur la cr�ation d'un programme qui envoie des socket en mode RAW.

    j'ai un ensemble d'erreur, captur� avec WSAGetLastError(), et je ne comprend pas leur signification car c'est un nombre ==> 10065 (Windows 2000 sp4). note : le meme code ex�cut� sur un autre ordi me donne l'erreur 10004 (windows XP sp2) !!

    Ces erreurs sont r�cup�r�es apres l'envoi d'un message via la socket (sendto());

    voila un bout de code qui vous montrera comment je cr� et d�clare mes sockets.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //création de la socket
    SOCKET socketRaw;
    socketRaw = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
     
    //initialisation de la socket
    int sockOpt = 1;
    setsockopt(socketRaw, IPPROTO_IP, IP_HDRINCL, (const char*)&sockOpt, sizeof(sockOpt));
     
    //envoi  de données
    sendto(socketRaw, (char *)pPaquet, dataSize, 0, (struct sockaddr *)&IP_sock_info, sizeof(IP_sock_info));
    pPaquet est une structure compos�e de deux autres structures formant l'entete IP et l'entete ICMP.

    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
    28
    29
    30
     
    struct IP_HEADER 
        { 
            unsigned char        ip_hl:4; // 4 bits("Internet header lengh") représentant la taille de l'entête IP
            unsigned char        ip_v:4; // ip_v la version (pour le moment version 4 de IP)
            unsigned char        ip_tos; // "Type Of Service" est codé sur 8 bits.
            unsigned short        ip_len; // Le champ Longueur totale est codé sur 16 bits et représente la longueur du paquet incluant l'entête IP et les Data associées
            unsigned short        ip_id; // Le champ Identification est codé sur 16 bits et constitue l'identification utilisée pour reconstituer les différents fragments.
            unsigned short        ip_off; // Codé sur ce bits cette valeur comporte le flag (3 bits indiquant l'état de la fragmentation) et le champ Position fragment (13 bits indiquant la position du fragment par rapport à la première trame)
            unsigned int        ip_ttl; // Time To Live : la durée de vie du socket.
            unsigned int        ip_proto; // Le protocol utilisé pour transporter les données. Peut être tcp(6), udp(17), icmp(1)
            unsigned short        ip_sum; // Le checksum du datagram
            unsigned int        ip_src; //Adresse IP source
            unsigned int        ip_dst; // Adresse IP destination
        };
     
        struct ICMP_HEADER 
        { 
            unsigned char        icmp_type; // Permet d'identifier le type de message envoyé ou recu (0 = Echo Reply, 8 = Echo Request, 11 = TTL exceeded)
            unsigned char        icmp_code; // Associé au champ type il représente la définition de message d'erreur.
            unsigned short        icmp_cksum; // Le champ Checksum est codé sur 16 bits et représente la validité du paquet de la couche 3 ICMP
            unsigned short        icmp_id; // 16 bits définissant l’identifiant de l’émetteur
            unsigned short        icmp_seq; // 16 bits permettant au récepteur d’identifier si il manque un paquet
        };
     
        struct ICMP_PAQUET
        {
            struct IP_HEADER    ip;
            struct ICMP_HEADER   icmp;
        };
    Si quelqu'un a une id�e sur mon probl�me, je suis preneur. si vous souhaitez voir mon code plus en d�tail ou s'il n'y a pas ass� de d�tails je suis � l'�coute.

    merci d'avance.

  2. #2
    Membre confirm�
    Inscrit en
    D�cembre 2005
    Messages
    134
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2005
    Messages : 134
    Par d�faut
    je serais preneur d'une petite piste ... , meme si elle est petite!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MySQL] message d'erreur lors de l'envois des donn�es du formulaires
    Par paolo129 dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 16/12/2008, 17h14
  2. R�ponses: 9
    Dernier message: 26/06/2008, 11h54
  3. Probl�me lors de l'envoi de donn�es via laison RS 232
    Par Rastaforien dans le forum Entr�e/Sortie
    R�ponses: 14
    Dernier message: 23/06/2008, 16h36
  4. R�ponses: 2
    Dernier message: 13/02/2007, 16h53
  5. [SQL] Pb Sql lors de l envoie des donn�es via un formulaire
    Par xtiand4 dans le forum PHP & Base de donn�es
    R�ponses: 3
    Dernier message: 12/06/2006, 14h18

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