Bonjour,
J'ai un un gros souci (ou petit ça dépend comment on voit les choses). Je n'arrive
pas à envoyer une structure sur mon socket (du serveur vers le client) et
la lire côté client.
J'ai bien alloué l'espace mémoire de ma struture avant de lire le contenu
de mon buffer(côte reception). Ce n'est pas un problème de bibliothèque
non plus.
Voici la ligne côté serveur:
write(sockPipe,(char*)&grille,sizeof(grille));
Côté client:
read(descripteurSocket,(char* )&grille,sizeof(grille));
(rq: ma structure est composé de sous-structures! Le problème viendrait -
il de là ?).
En fait, lorsque je debug, je me rends compte que le client affiche(cannot access memory 0xxxxxxxx).
Je me suis tourner vers le web et j'ai trouvé plusieurs informations:
-Apparemment la serialisation de ma structure serait plus adapté mais les
seuls tutoriels présents sur le web sont sur les classes d'objets.
Pourriez-vous me dirigez vers un lien ou un cour sur le sujet (c'est à
dire "la sérialisation de structure sur un socket").
-J'ai lu aussi qu'il fallait plus utilisé un memset de cette manière:
1 2 3 4 5 6
| grille.tab= malloc(sizeof (Colonne) * grille.taille);
memset(grille.tab,0,sizeof(Colonne));
for (i = 0; i < grille.taille; i++) {
grille.tab[i].colonne = malloc(sizeof (Case) * grille.taille);
memset(grille.tab[i],0,sizeof(Case));
} |
-J'ai pensé, aussi, au lieu d'envoyer la structure, j'enverrai les
éléments de la structure en série. Mais le problème c'est un code assez
lourd et je voudrais quelques choses d'optimisé.
J'ai essayé toutes ces "solutions" mais rien ne fonctionne.
Merci d'avance
Partager