Envoi structure par socket

Résolu
Signaler
Messages postés
5
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 février 2006
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Je voudrais envoyer une structure de donnée plutot que d'envoyer une traditionnel chaine de caractere:
Le probléme est le suivant : l'envoi de la structure semble s'effectuer correctement mais du coté de la reception je reçoi rien.
Alors si quelqu'un a une idée ...
On m'a suggérer de caster ma structure comme cela :

/////////partie client////////////
struct TStruct{
char Chaine[20];
int Entier;
};
TStruct MesDonnees;
//je remplie correctement les variables de ma structure
MesDonnees.Entier = 6;
send(sock_service, (char*)&MesDonnees , sizeof ( (char*)&MesDonnees ) ,0);

/////////partie server////////////

struct TStruct{

char Chaine[20];

int Entier;
};

TStruct MesDonnees;
MesDonnees.Entier =1;

recv(sock_service, (
char*)&MesDonnees
, sizeof ( (
char*)&MesDonnees )
,0); // elle retourne -1 ( c'est pas normal )
//arrivé ici ma structure n'a pas été remplie
//MesDonnees.Entier vaut toujours 1

4 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
sizeof (MesDonnees) serait mieux.
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Je te conseillerai plutôt de décomposer ta structure et de l'envoyer élément par élément.
C'est pas très pratique je sais, mais à mon avis c'est le seul moyen.
En attente d'avoir d'autres avis sur la question.

YOYO, @+.
YOYO
Messages postés
5
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 février 2006

ça marche merci ymca ct bien le sizeof qui etait mal fait !!
merci a toi aussi yoyo pour l'attention portée
genial !
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Merci ymca2003 pour l'info. Je sens que ça va servir un jour ça !

YOYO, @+.
YOYO