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 31 32 33 34 35 36 37 38 39 40 41 42 43
|
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():");
} |
Partager