dcsara | Bonjour,
j'ai un sérieux problème, voila j'utilise cette fonction (voir ci dessous), le problème c'est que j'arrive pas à envoyer correctement le buffer,
quand j'édite la taille du buffer, il indinque que c'est 2 alors que ca devra etre normalement 20. je crois que j'ai des erreur lors du remplissage du buffer.
Aidez moi svp
Sara
Code :
- uint16_t seq, message_len, hl, tp, ln;
- uint32_t at, gd;
- unsigned char *buffer;
- unsigned int echolen;
- int i;
- buffer = (__u8 *) malloc(100);
- /* initialisation et creation de la socket */
- // je l'ai pas mis pour qu'il soit pas tres encombrant, en plus pas de prob avec cette partie car la socket s'ouvre normalement et la connexion est aussi réussi, c'est le buffer qui buge
- seq = htons(0);
- hl = htons(0);
- at = htonl(1);
- gd = htonl(1);
- tp = htons(2);
- ln = htons(2);
- message_len = htons(20);
- buffer[0] = 0x10;
- buffer[1] = 0x01;
- bcopy(&seq,&(buffer[2]),2);
- bcopy(&at,&(buffer[4]),4);
- bcopy(&gd,&(buffer[8]),4);
- bcopy(&hl,&(buffer[12]),2);
- bcopy(&message_len,&(buffer[14]),2);
- bcopy(&(tp),&(buffer[16]),2);
- bcopy(&(ln),&(buffer[18]),2);
- /* Send the message */
- echolen = strlen(buffer);
- printf(" longeur est %d\n", echolen);
- /* ici echolen est égale à 2 alors que normalement elle devra etre à 20, ce qui pause des problème pour l'envoie et lors de la reception*/
- if (send(s, buffer, echolen, 0) != echolen) {
- perror("Send():" );
- }
|
|