Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Envoi/Réception de structure et endianess  (Lu 2110 fois)

0 Membres et 1 Invité sur ce sujet

Zylann

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
[Résolu] Envoi/Réception de structure et endianess
« le: Mai 13, 2013, 07:42:35 pm »
Bonjour,
J'ai commencé à coder une architecture client-serveur, et ai été tenté d'utiliser une méthode "paquet = structure" pour mes paquets réseau :
plutôt que d'utiliser sf::Packet, envoyer directement un tableau d'octets représentant des struct. Ainsi, le receveur n'aurait qu'à reconstruire la structure par l'opération inverse. Je trouve ça pratique car ça évite de se payer des lignes en plus pour << et >> les variables une par une dans un sf::Packet etc.

Cependant, est-ce que ça peut justement poser problème au niveau de l'endianess? Si oui, y-a-til un moyen de s'en débarasser sans avoir à repartir sur du variable-par-variable avec sf::Packet?
« Modifié: Mai 13, 2013, 11:43:25 pm par Zylann »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Envoi/Réception de structure et endianess
« Réponse #1 le: Mai 13, 2013, 10:54:44 pm »
Problème : oui, théoriquement. En pratique, tous les processeurs de bureau actuels sont little endian. Ce que tu peux trouver en big endian encore aujourd'hui ce sont de vieux macs (PPC) et certains processeurs ARM (téléphones, tablettes).

Personnellement je ne partirais pas sur cette hypothèse, mais si tu cibles sur un public vraiment restreint, pourquoi pas.

Sinon, non, pas moyen d'éviter de retourner les variables une à une lorsque l'endianness est différent. Si dans ce genre de situation on fait de la sérialisation plutôt qu'une bête copie d'octets bruts, c'est pas pour rien ;) Mais ce ne sont que deux opérateurs à écrire pour chaque structure, c'est pas non plus comme si tu devais écrire une tonne de code en plus pour chaque envoi / réception de paquet.
Laurent Gomila - SFML developer

Zylann

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Envoi/Réception de structure et endianess
« Réponse #2 le: Mai 13, 2013, 11:43:07 pm »
Ok, c'est bien ce que je pensais. Merci  :)