Client/Serveur TCP en C++

Résolu/Fermé
pignon - 21 janv. 2010 à 14:02
 pignon - 21 janv. 2010 à 14:37
Bonjour,
La notion de client/serveur en tcp est un peu nouvelle pour moi, j'essaye de faire ça en C++, j'ai lu le tuto https://www.frameip.com/c-mode-connecte/ (très bon d'ailleurs) et je souhaiterai savoir s'il est possible de faire communiquer le serveur avec le client. Je m'explique : dans le tuto on voit qu'il est possible côté client de dire au serveur "coucou je suis les données" et côté serveur de recevoir ces données. Moi j'aimerai que le serveur dise en retour au client quelque chose (comme "ok bien reçu" ou "maintenant tu peux m'envoyer la deuxième donnée"), le but c'est que quand le client reçoit ces données du serveur, il puisse à son tour renvoyer des données au serveur.

En gros :

client à serveur : "coucou, je suis les données"
serveur reçoit : "coucou, je suis les données"
serveur à client : "envoie les autres données"
client reçoit : "envoie les autres données"
client à serveur : "voici les autres données"
serveur reçoit : "voici les autres données"

Il faudrait en quelque sorte que le serveur et le client inversent les rôle l'espace d'un instant. Est-ce possible ? Quand on voit le graphique au début du tuto, ça paraît possible car il y a un send du client avec receive du serveur, et en dessous l'inverse. Simplement je ne sais pas trop comment faire...

Merci beaucoup de m'éclairer !
A voir également:

3 réponses

Salut,
le serveur ne sert qu'a attendre une connexion. une fois connecté, il n'y a plus trop de notion de client ou de serveur, seulement deux interlocuteurs. Et surtout n'oublie pas qu'ils peuvent ester connecté pendant une durée indéfinie (1 secondes, 1h, 3 mois....)
Beaucoup de gens pensent que la connexion doit être fermée dès qu'un message est envoyé, a tord.
1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 janv. 2010 à 14:22
En effet, c'est simple, il suffit d'inverser la procedure. utiliser send pour dans le serveur et recv dans le client.
1
En effet, j'ai testé après vos réponses et ça marche ! Je savais bien que c'était possible, mais je ne savais pas trop comment faire (fermer la session et en ouvrir une autre en inversant les rôles ou bien simple échange de send sur le serveur/receive sur le client...).

Maintenant tout est clair pour moi, merci beaucoup à tous les deux !
0