Wooden Posté(e) le 31 octobre 2005 Partager Posté(e) le 31 octobre 2005 J'aimerai bien savoir commant recuperer le nombre de connexions attachées a un Selector en java: j'ai un private Selector _selector; et je voudrait une function genre public int getConnectionNumber() j'avais tenté public int getConnectionNumber() { return _selector.keys().size(); } vu que keys() retourne toute les SelectionKey du selector et que les conenxion non valides sont supprimées de ce Set (aussi bien celle fermé par une erreur distante que par un .close()) mais ça ne marchais pas, vu que le Set renvoyé pas .keys() n'est pas thread safe, j'ai tenté en synchronisant: public int getConnectionNumber() { Set<SelectionKey> tempSet = _selector.keys(); int connections = 0; synchronized(tempSet) { connections = tempSet.size(); } return connections; } mais pas plus de chance, ça retourne bien un nombre, superieur à 0, qui pourrai parraitre juste mais apres une utlisation intensive du Selector on s'apperçoit que ce nombre n'est pas correct... une idée? à par bien sur de compter 'à la main' les connexion ajouter et celles fermées Lien vers le commentaire Partager sur d’autres sites More sharing options...
Wooden Posté(e) le 20 novembre 2005 Auteur Partager Posté(e) le 20 novembre 2005 Pour ceux que ça interesse, en fait public int getConnectionNumber() { Set<SelectionKey> tempSet = _selector.keys(); int connections = 0; synchronized(tempSet) { connections = tempSet.size(); } return connections; } ça marche tres bien. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.