|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Inscription : mai 2012 Messages : 7 ![]() |
Bonjour à tous.
Je suis en train d'essayer de faire une application RPC qui aurait pour but de simuler le jeu de la vie. Le but du jeu n'est pas du tout important pour le problème que je rencontre, donc je vais en venir directement aux faits : je veux envoyer un tableau de mon client à mon serveur. Pour cela, j'utilise une structure qui contient (notamment) le nombre de lignes de la matrice à envoyer, le nombre de colonnes, et un pointeur vers le tableau. Mon tableau représente ma matrice. Pour accéder à la case située à la ligne l et à la colonne c de ma matrice, je fais tableau [nbreColonnes * l + c] Bref, le problème est le suivant : lorsque j'appelle ma méthode distante, je me rends compte que cette dernière récupère bien tous les paramètres de ma structure, sauf le tableau. En effet, lorsque je l'affiche dans la méthode du serveur, il m'affiche une matrice bizarre qui ne possède que la première case de juste. Par exemple : si j'envoie le tableau suivant : alors mon serveur récupère le tableau suivant : Code :
D'où ma question : est-ce que j'ai loupé une étape dans mon code ? Je vous mets le code de mon client, de mon serveur et de mon interface RPC. Notez que j'utilise pthread pour envoyer en parallèle à 3 serveurs la même requête (quand le code marchera, les 3 serveurs auront des actions différentes à faire sur le tableau bien sûr). Code :
Code :
Code :
|
||||||||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Raymond Inscription : mai 2007 Messages : 9 058 ![]() |
Citation:
Citation:
__________________
Raymond Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi ![]() Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.e-verbe Un logiciel de conjugaison des verbes de la langue française.Ma page personnelle sur DVP. |
||
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : mai 2012 Messages : 7 ![]() |
Citation:
Ok. Non je lui envoie un pointeur sur le tableau. Mais je suis censé faire comment pour lui envoyer le tableau et non pas le pointeur ? |
|
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Raymond Inscription : mai 2007 Messages : 9 058 ![]() |
Alors je pense que c'est cela ton problème
Citation:
Cela s'appelle du marshalling (ou de la sérialisation). Imagine toi que tu doivent écrire ta structure sur disque dur, si tu écris le pointeur du tableau dans le fichier, tu perds les données, tu n'as écrit que l'adresse mémoire à laquelle se trouve ton tableau mais pas le contenu de cette mémoire. Donc il ne faut pas écrire le pointeur mais itérer sur les données pour les écrire une par une. De même si tu dois relire le fichier, tu va lire depuis le fichier, éléments par éléments, ce que tu as écris pour reconstituer ton tableau. Bien sûr, il ne faut pas oublier de sauvegarder les tailles X et Y de ton tableau pour pouvoir les relire, sinon, tu ne sais pas réordonner ton tableau.
__________________
Raymond Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi ![]() Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.e-verbe Un logiciel de conjugaison des verbes de la langue française.Ma page personnelle sur DVP. |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2012 Messages : 7 ![]() |
Ok je comprends, c'est comme en Java.
Par contre, je pensais que RPC gérait tout ça pour moi... Je suis trop habitué à Java je pense ![]() J'imagine qu'il n'y a pas de méthode magique : il faut déclarer un tableau (et non pas un pointeur) dans ma structure et mon programme recopiera tout le tableau dans la structure à partir du pointeur avant d'envoyer au serveur, me trompé-je ? |
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Raymond Inscription : mai 2007 Messages : 9 058 ![]() |
Citation:
__________________
Raymond Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi ![]() Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.e-verbe Un logiciel de conjugaison des verbes de la langue française.Ma page personnelle sur DVP. |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2012 Messages : 7 ![]() |
Ok.
Du coup, j'ai déclaré un tableau de taille statique dans ma structure et je recopie une à une chaque case dans ce tableau lorsque je veux envoyer un message au serveur. Ça marche bien comme ça. Merci beaucoup pour ton aide en tous cas ram-0000 ! |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Raymond Inscription : mai 2007 Messages : 9 058 ![]() |
Avec plaisir !!
PS : en bas de la discussion, il y a le bouton quand tu as la solution à ton problème
__________________
Raymond Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi ![]() Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.e-verbe Un logiciel de conjugaison des verbes de la langue française.Ma page personnelle sur DVP. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com