Bonjour,
j'utilise la copie de structure par pointeur dans un buffer. Ca marche relativement bien, le problème, c'est la représentation pour les champs de ma structure de plus d'un octet. Bon d'abord juste un pti bout de code pour montrer ce que je fais quand même:
Donc voilà, quand je remplis ma structure iph, grace au pointeur, datagram contiendra iph (enfin vous voyez ce que je veux dire)...
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 struct ipheader { unsigned char ip_hl:4, ip_v:4; unsigned char ip_tos; unsigned short int ip_len; unsigned short int ip_id; unsigned short int ip_off; unsigned char ip_ttl; unsigned char ip_p; unsigned short int ip_sum; unsigned int ip_src; unsigned int ip_dst; }; char datagram[4096]; struct ipheader *iph = (struct ipheader *) datagram;
Le souci, c'est que donc pour les champs de plus de 1 octet, la représentation choisit fait que le bit de poids faible se retrouve à gauche (d'après les traces que j'ai fait) or moi je voudrais qu'il soit à droite car j'envoie ce buffer au travers d'une socket vers une autre machine donc ça fout un peu le bordel que le bit de poids faible soit à gauche...
Comment je peux faire?
Je suis sous Mandrake 10 au passage, je précise.
Partager