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?
Version imprimable
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 ;)
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.