• [^] # Re: struct en C, struct en python

    Posté par (site web personnel) . En réponse au message Décomposer une structure C. Évalué à 3.

    Oui le module struct est bien, xdrlib est pas mal non plus.

    En revanche une petite remarque. Je ne sais pas pour quelle raison tu utilises une structure avec des #pragmas pack(), mais si c'est pour écrire toute ta structure d'un coup dans ta socket sans perte de place, tu fais probablement une erreur. En effet :
    - ton code sera lent quand il manipulera ta structure autrement que pour l'envoyer sur le réseau (des manipulations supplémentaires à cause de l'alignement pas 'naturel'). Cependant rien n'empêche de mettre les membres de ta structure dans un ordre intelligent (char ensemble par exemple).
    - tes trames réseau ne sont pas portables : en écrivant d'un coup toute ta structure, le comportement variera suivant les machines(32/64 bits, big endian/little endian...). Il faut faire une fonction qui va sérialiser ta structure dans un buffer, avec des fonctions comme htonl()/htons(), puis écrire ce buffer dans ta socket.

    Désolé du dérangement si tu savais tout ça!! :)