Je suis nouveau sur C++ et j'ai commencé à coder mon serveur avec boost. Je suis beaucoup d'exemple sur le web et sur le doc officiel. Mais je n'ai rien trouvé (peut-être que je ne pose pas la bonne question) à propos de ceci-> communiquer avec un client spécifique. Je veux dire par that->c + + communique avec le client spécifique Boost asio
vieille question:
lancement du serveur et attendre connection-> client (1) se connecter via TCP-> serveur accepte client et commencer async_read
Disons que 3 clients se connectent aussi->
Comment vais-je dire à mon serveur aussi écrire trop client (2) ou (3) mais pas les deux?
je me exprime mal
Nouvelle question:
Mon serveur excellent travail, quand envoyer client des données au serveur (client personnalisé dans le moteur Unreal 4) il peut le lire puis écrire retour à mon client sans problème. Je cherche un moyen de parler au client que je veux sans avoir besoin d'envoyer des données. Exemple:
client 1 écrire sur le serveur-> les données envoyées au serveur lancent l'action suivante-> écrire sur un client spécifique.
exemple plus précis:
Client 1 voulez envoyer la demande au client 10, si le client 1 écriture au serveur l'action «l'action, id client» (demande, 10), le serveur sait qu'il faut parlez au client 10 et envoyez la demande.
Mon problème n'est pas côté client, mais côté serveur.
Je suis sûr que c'est assez facile et je ne comprends tout simplement pas certaines choses de base, si quelqu'un pouvait me donner une direction, un exemple ou simplement une explication, il serait apprécié. Merci pour votre réponse future.
EDIT:
Si quelqu'un a du mal comme moi (je sais qu'il est facile, mais on ne sait jamais: p, peut-être il pourrait aider quelqu'un) ici la réponse.
j'inclure ce dans le fichier où je l'utilise pour se connecter, écrire, envoyer, etc.
std::map<int, tcp::socket> playerRemote;
Je mets IT->
playerRemote.insert(std::pair<int, tcp::socket>(id, std::move(socket_)));
utiliser le socket->
boost::asio::async_read(playerRemote.at(id_to_use)
Question résolue! Merci pour l'aide!
Dude ... des exemples à ce sujet sont PARTOUT! Regardez ici: http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/examples/cpp11_examples.html –
Quel est le problème? Si vous avez trois sockets acceptées, stockées et attendent de recevoir des données via 'async_read', vous pouvez simplement appeler' write' ou 'async_write' sur le socket connecté à un client particulier. –
Si vous souhaitez envoyer des données à des clients spécifiques, vous pouvez les stocker dans, par exemple, un 'std :: map' avec l'adresse IPv4/6 ou un nom [...] et envoyer les données ... comme aussi simple que cela. – Blacktempel