Signaler

Serveur-client [Résolu]

Posez votre question STamait 24Messages postés jeudi 17 décembre 2015Date d'inscription 31 mai 2017 Dernière intervention - Dernière réponse le 7 févr. 2017 à 13:25 par poparnassus
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.
Utile
+0
plus moins
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] 4382Messages postés mercredi 15 septembre 2004Date d'inscription ContributeurStatut 20 septembre 2017 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
Répondre
STamait- 31 oct. 2016 à 12:29
Merci Dal et Perret
Répondre
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !