Bonjour,
Mon problème est assez similaire à cette situation :
http://en.sfml-dev.org/forums/index.php?topic=505.0Je reprends un message de Laurent :
"I don't think that a socket can perform multiple tasks in parallel. Things have to be done sequentially. That's why I wonder why people want to use the same socket in multiple threads, I can't find a situation where this can be useful."
Et voici mon cas concret :
Je réalise un tactical-rpg multijoueur et pour le moment j'utilise un seul socket pour chaque client.
Mais je crois qu'il est possible dans ma situation que ce socket soit utilisé par le client et le serveur en même temps.
1) Le serveur envoi une réponse suite à un calcul réalisé sur une action demandée par l'utilisateur.
2) Le client envoi un message via le chat.
Il y a bien une suite logique entre les différentes actions d'un joueur et il attendra toujours la réponse avant de pouvoir effectuer la prochaine action, mais par contre il peut envoyé un message par le chat quand il veut.
Dois-je gérer la communication client-serveur pour le chat dans un socket réservé sur un autre port à cette tâche dans ce cas-ci ?
Que se passe-t-il quand le socket est utilisé en même temps des deux côtés (client-serveur) ?
Edit :
Le problème peut arriver également quand une action d'un autre joueur nécessite que le serveur envoi la réponse à tous les participants.
J'en profite pour poser une deuxième question. J'aimerais réaliser un top départ entre plusieurs participants, un peu comme dans un jeu de course.
Pour le moment j’exécute une boucle sur ma liste de participants et je leur envoi le top. A quelle vitesse l'envoi est effectué ? Est-il nécessaire de créer un thread par participant pour envoyer le top ?