Menu

Serveur-client [Résolu/Fermé]

STamait 24 Messages postés jeudi 17 décembre 2015Date d'inscription 31 mai 2017 Dernière intervention - 29 oct. 2016 à 12:00 - Dernière réponse : poparnassus 411 Messages postés vendredi 28 mars 2014Date d'inscription 17 décembre 2017 Dernière intervention
- 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.
Afficher la suite 

4 réponses

perreet 226 Messages postés vendredi 30 janvier 2009Date d'inscription 22 avril 2017 Dernière intervention - 29 oct. 2016 à 17:12
0
Utile
2
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
[Dal] 4572 Messages postés mercredi 15 septembre 2004Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 31 oct. 2016 à 11:16
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
Merci Dal et Perret
poparnassus 411 Messages postés vendredi 28 mars 2014Date d'inscription 17 décembre 2017 Dernière intervention - 7 févr. 2017 à 13:25
0
Utile
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
http://www.commentcamarche.net/forum/affich-34339818-definir-qui-est-le-serveur-qui-est-le-client