J'aimerais limiter le nombre de connexion entrantes sur mon serveur. Dois je le faire manuellement ou y a t-il une option dans ASIO?
J'aimerais limiter le nombre de connexion entrantes sur mon serveur. Dois je le faire manuellement ou y a t-il une option dans ASIO?
Il suffit de rajouter un test sur le nombre de client déjà accepté dans la fonction que l'on nomme souvent "handle_accept" qui permet de gérer la demande de connexion. Souvent on s'en sert pour enregistrer le socket dans un conteneur, etc. Et là il te suffit justement de regarder s'il y a déjà N clients connectés. Si oui, tu envoies balader le client, sinon tu l'acceptes et le rajoute à ton conteneur![]()
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
Le paramètre sur le nombre max de connexion sert à gérer la file d'attente des demandes de connexion et non des connexions déjà établies. D'ailleurs, une socket après avoir fait un accept ne sait plus rien de la socket connectée (et c'est normal). Il en est de même au niveau de Boost.asio.
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Partager