Posté par daggett .
En réponse au message buffer.
Évalué à 4.
Je rajouterai que, bien qu'on puisse transmettre les données de façon "opaque" en comptant sur le fait qu'en face le gros paquet d'octets rentrera pile dans les cases de la structure, ça n'est valable que quand on est sur la même architecture des deux cotés.
En effet un "int" sur un linux powerPC 32bits, n'est pas du tout la même chose qu'un "int" sur un linux X86-64 bits: nombre et ordre des octets sont différents. La structure ne sera du coup plus lisible telle-quelle.
Pour que ton implémentation soit correcte, il est donc conseillé de passer par un format "universel", par exemple en utilisant les fonctions XDR (man 3 xdr) que tu appeleras pour convertir les champs de ta structure en une suite d'octets dans un sens, puis refaire la conversion inverse dans l'autre.
Bien sur, tu peux débuter ton implémentation par l'envoi direct de ta structure (c'est plus simple à faire), mais il faudra un jour passer par le formatage XDR pour être propre.
[^] # Re: buffer
Posté par daggett . En réponse au message buffer. Évalué à 4.
En effet un "int" sur un linux powerPC 32bits, n'est pas du tout la même chose qu'un "int" sur un linux X86-64 bits: nombre et ordre des octets sont différents. La structure ne sera du coup plus lisible telle-quelle.
Pour que ton implémentation soit correcte, il est donc conseillé de passer par un format "universel", par exemple en utilisant les fonctions XDR (man 3 xdr) que tu appeleras pour convertir les champs de ta structure en une suite d'octets dans un sens, puis refaire la conversion inverse dans l'autre.
Bien sur, tu peux débuter ton implémentation par l'envoi direct de ta structure (c'est plus simple à faire), mais il faudra un jour passer par le formatage XDR pour être propre.