IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Envoyer Objet / Structure par socket TCP


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Envoyer Objet / Structure par socket TCP
    Bonjour à tous,

    Voilà je vous présente mon problème,

    en fait je développe un système client / serveur avec des sockets TCP.
    Mon serveur et mon client arrivent à s'échanger des messages (tableau de char), cependant je voudrais que le client envoi une structure (par exemple s_message qui contient le pseudo et le message).

    Cependant j'utilise la fonction recv() mais à la place du message en char, je ne peux pas mettre ma structure...

    Quelqu'un a une idée ?

    Merci d'avance

  2. #2
    Débutant
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Points : 176
    Points
    176
    Par défaut
    boost::serialization

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Oki merci je vais voir !
    je viens de voir un tuto Boost avec l'utilisation de socket..

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Bah je ne suis pas sur mais si tu met ta structure + la taille complète de ta struct et de ce quel contient dans ton send tu peut la recuperer dans le recv.
    Voila

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Points : 60
    Points
    60
    Par défaut
    Un cast "sauvage" char* → struct ?
    Ça marche, mais pas dans tous les cas.
    Il faut être certain que la mémoire est structurée de la même façon entre le client et le serveur.
    Problème 32 bits - 64 bits, little endian - big endian, etc...
    L'utilisation de la sérialization boost assure la comptabilité, avec plein de goodies (gestion de versions,...)

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par jouana Voir le message
    Bah je ne suis pas sur mais si tu met ta structure + la taille complète de ta struct et de ce quel contient dans ton send tu peut la recuperer dans le recv.
    Voila
    Bon courage. 1 chance sur 10 que ça marche :
    -> problème d'alignement et d'endianess évoqué par notre ami omc24 ;
    -> si ta structure contient des pointeurs, c'est foutu ;
    -> si ta structure n'est pas POD, c'est un comportement indéterminé.

Discussions similaires

  1. Communication par socket TCP
    Par rhum187 dans le forum Réseau
    Réponses: 0
    Dernier message: 29/01/2013, 18h45
  2. Envoi structure sur socket TCP
    Par BlackVador dans le forum C
    Réponses: 6
    Dernier message: 05/01/2011, 13h15
  3. Pb transfert structure par socket
    Par Wriggles dans le forum Débuter
    Réponses: 3
    Dernier message: 12/06/2008, 14h04
  4. Communication par socket TCP entre module windows et linux
    Par =o0 MOH =0o= dans le forum Réseau
    Réponses: 2
    Dernier message: 29/03/2007, 17h04
  5. récupérer string par socket TCP
    Par bogsy15 dans le forum C++
    Réponses: 14
    Dernier message: 11/06/2006, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo