Tom's Guide > Forum > Programmation > [cpp]Envoyer une structure par winsock

[cpp]Envoyer une structure par winsock

Forum Programmation : [cpp]Envoyer une structure par winsock

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Salut

Je voudrais savoir si il existe une fonction dans winsock pour envoyer/recevoir des structures.

Merci

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ce n'est pas bon d'envoyer une structure en C directement dans une socket, car en C, selon le mode de compilation et la plateforme cible, les variables peuvent s'aligner différemment (sur 2, 4 octets ou autres).
exemple: sur un alignement sur 4 octets {int,short,short} prend 8 octets, mais {int,short} prend également 8 octet (car 6 n'est pas un multiple de 4). C'est donc une origine de bugs pas forcément visible au début.
Donc, il ne faut jamais envoyer une structure dans un flux de données sérialisés, d'autant plus que les sockets permettent de communiquer des architecture totalement différentes !

En pratique, in faut tout mettre à plat dans un buffer et envoyer le buffer.
Pour faire propre, de chaque côté du tuyau, il faut voir la même chose. L'idéal est de bien spécifier le format du buffer, et faire des constantes pour définir les offsets et tailles des morceaux du buffer.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Ok bien recu chef. Structure pas bon :D .

Merci pour l'info

Répondre à quarty
Tom's Guide > Forum > Programmation > [cpp]Envoyer une structure par winsock
Aller à :

Il y a 1110 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens