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 :

[SOCKET] Envoi de structure


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 50
    Par défaut [SOCKET] Envoi de structure
    Bonjour,
    j'ai crée une socket UDP pour envoyer les données contenues dans une structure que j'ai faite.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    soc = socket(AF_INET, SOCK_DGRAM, 0);
               (void)memset(&s_addr, 0, sizeof(s_addr));
               s_addr.sin_family = AF_INET;
               s_addr.sin_port   = htons(162);
               ((struct sockaddr_in *)(&(s_addr)))->sin_addr.s_addr = *(unsigned long*)&(tramesnmp->trame.trap.manaddr.valeur);
               sendto(soc,&tramesnmp,sizeof(tramesnmp),0,(struct sockaddr *)&s_addr, sizeof(struct sockaddr_in));
     
               closesocket(soc);
    Cette structure est en fait composé d'un ensemble de sous-structures dans le membre principal est trame snmp.

    Le problème est que quand il envoie la trame, celle-ci ne contient que 4 octets et j'avoue que ça me dépasse

    Ma structure ressemble à ça

    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
     
    ...
    typedef struct
    {
    CODAGEVAR           donnee;
    CODAGECHAR          timeticks;  /* temps*/
    CODAGEINT           typetrap;   /* Trap */
    CODAGECHAR          oid ;       /*Object identifier*/
    CODAGEADDR          manaddr;    /*adresse manager SNMP */
    CODAGECHAR          spef;       /* code de l'erreur (ici code specifique)*/
    CODAGECHAR          error;      /* nom de l'erreur */
    }TRAPPDU;
     
    typedef struct
    {
    CODAGEINT           version;    /*version de SNMP*/
    CODAGECHAR          community;  /* mot de passe entreprise*/
    CODAGECHAR          carte;      /* type carte */
    char                *tag;
    int                 longueur;
    TRAPPDU             trap;
    }TRAPSENDER;
     
    typedef struct
    {
    char                *tag;
    int                 longueur;
    TRAPSENDER          trame;
    }TRAPSNMP;
    Si quelqu'un pouvait me dire deux choses
    1) savoir si quand j'envoie ma structure tout part ou si il faut modifier celle-ci
    2) savoir pourquoi actuellement ça marche pas

    Si vous aviez quelques minutes, ça ne doit pas etre trop dur mais j'avoue que je ne trouve pas

  2. #2
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Tu envoies tramesnmp qui est un pointeur, donc 4 octets.

    Si tes structures contiennent des pointeurs, tu auras le même problème.

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 50
    Par défaut
    Oki c pour ça

    Et si j'enleve le pointeur( transformation de tramesnmp-> en tramesnmp. ), il devrait tout envoyer donc ?

  4. #4
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 50
    Par défaut
    ça marche parfaitement

    merci beaucoup

    ct bête mais fallait le savoir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. C++ Socket envoi de structures sérialisées
    Par nfast dans le forum C++
    Réponses: 5
    Dernier message: 30/12/2012, 11h46
  2. Envoi de structure via socket
    Par RoZyk dans le forum Réseau
    Réponses: 4
    Dernier message: 09/11/2010, 10h01
  3. windows socket, problème envoi de structure :s
    Par ramislebob dans le forum Réseau
    Réponses: 7
    Dernier message: 29/07/2006, 23h17
  4. [toFAQ][socket] Envoi d'une structure
    Par julien20vt dans le forum C++
    Réponses: 15
    Dernier message: 23/04/2003, 15h47
  5. [Socket]envoie de fichier!!!
    Par SamDaKap dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/11/2002, 08h07

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