Steph115
Messages postés163Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 3 février 2012
-
31 janv. 2005 à 14:10
Steph115
Messages postés163Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 3 février 2012
-
1 févr. 2005 à 18:10
Bonjour,
Pour info je travaille sous Linux en C++
j'ai une fonction definie comme ca :
int ServeurSocket::emmetreSocket(void* trame, int taille)
{
return sendto(Service, trame, taille, 0, (struct sockaddr*)&SockClient, sizeof(SockClient));
}
J'appelle la fonction comme ceci :
SS->emmetreSocket(&(Essai)E1, sizeof(E1));
Et la Structure Essai est declare comme ca :
typedef struct
{
AnsiString S1;
int I1;
}Essai;
Mon probleme :
J'aimerais envoyer par le Reseau la structure Essai mais je ne veux pas que la fonction se limite juste a une structure particuliere alors c'est pour ca que j'ai mis un void* que je caste en appelant la fonction.
Bien entendu quand je le teste ca ne marche pas.
Si quelqu'un aurait une idée merci de m'en faire part.
Merci. Et bon Code a tous. ++ Nexus
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 31 janv. 2005 à 15:27
SS->emmetreSocket(&E1, sizeof(E1));
=> le type void* permet de passer un pointeur sur n'importe quoi (un char, un int, une structure...)
par contre dans ta structure il y a une variable du type AnsiString. Si cette varaiable contient un pointeur (ce que je suppose vu que c'est une string). l'envoyer telle quelle va poser un problème car seul le pointeur sera envoyé et pas le contenu de la chaîne.
Steph115
Messages postés163Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 3 février 2012 31 janv. 2005 à 16:12
Merci de ta reponse, effectivement l'AnsiString posait problème en l'enlevant le int dans la structure a été très bien recu par le client.
L'AnsiString était la juste pour un test. Dans la vrai structure j'utilise juste des int des floats et des doubles.
Merci. ++ Nexus
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.