Serveur-client

Résolu/Fermé
STamait Messages postés 24 Date d'inscription jeudi 17 décembre 2015 Statut Membre Dernière intervention 31 mai 2017 - Modifié par crapoulou le 29/10/2016 à 14:38
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - 7 févr. 2017 à 13:25
Bonjour,
Je travaille sur un projet de réseau qui contient client-serveur avec le langage C,mon problème est que je veux envoyer un tableau depuis le serveur vers le client en utilisant un socket, j'ai déjà essayer en utilisant le code ci-dessous mais le terminal m'affiche toujours un erreur dans la ligne 3:

//Initialisation de la carte à envoyer au client
memset (buf, 0, 80);
buf = init_carte (tab, per);
//sprintf(buf, "%d", init);
write (s_dial, buf, strlen (buf));
printf ("J'ai envoye [%c] au client\n", buf) ;
init carte: retourne une carte sous forme d'un tableau
buf:bbuufer que j'utilise pour transmettre le tableau au client

voila l'erreur sur le terminal
serveur_tcp_simple.c:50:6: error: assignment to expression with array type
buf = init_carte (tab, per);



Merci de m'aider si vous avez un solution, car cela ca fait parti d'un grand projet en réseau.

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

perreet Messages postés 230 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 3 mai 2018 20
29 oct. 2016 à 17:12
Bonjour, d'après ce que je comprend, tu cherche à mettre un tableau dans un buffer avec la ligne buf = init_carte (tab, per);
La ligne serveur_tcp_simple.c:50:6: error: assignment to expression with array type
veut dire qu'il n'arrive pas à ranger un tableau dans buf.
Il faut le faire manuellement avec une étape intermédiaire.
Range le contenu de init_carte(tab,per) dans un tableau.
Ensuite, fait une boucle pour parcourir le tableau, et pour chaque élément, ajoute le à la suite du buffer. Je te laisse trouver la logique.
Bon courage
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 31/10/2016 à 11:18
Salut STamait, et perreet,

En fait, on ne peut pas savoir quel est exactement le pb sans avoir le prototype de init_carte (et probablement le code de cette fonction pour comprendre l'origine de l'incompréhension de STamait par rapport à ce qu'il tente de faire) et les déclarations de buf, tab et per.

Comme l'erreur se plaint qu'on essaye d'affecter une valeur à quelque chose qui est un tableau, je soupçonne
buf
d'être un tableau et
init_carte()
de renvoyer autre chose qu'un tableau (une fonction ne peut pas renvoyer un tableau en C, de toutes façons, au mieux un pointeur vers un espace mémoire, sur le premier élément).

Si tel est bien le pb, une façon de faire serait simplement de passer un pointeur vers le tableau à remplir en 3ème argument de
init_carte()
, et remplir directement ce tableau passé en argument dans la fonction, qui pourra retourner
void
(ou un code d'erreur si pour une raison ou l'autre la fonction échoue).

Pas de copies additionnelles à faire, à mon sens....

... mais là, on joue aux devinettes car STamait ne nous donne pas toutes les infos.


Dal
0
Merci Dal et Perret
0
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
7 févr. 2017 à 13:25
http://sdz.tdct.org/sdz/les-sockets.html

Peut etre que ce liens pouura t'aider.



Si quelqu'un à le temps j'ai besoin d'aide sur ce topic pour du C client/serveur
https://forums.commentcamarche.net/forum/affich-34339818-definir-qui-est-le-serveur-qui-est-le-client
0