Bonjour,
j'ai crée une socket UDP pour envoyer les données contenues dans une structure que j'ai faite.
Cette structure est en fait composé d'un ensemble de sous-structures dans le membre principal est trame snmp.
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);
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
Si quelqu'un pouvait me dire deux choses
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;
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![]()
Partager