Jump to content

Java Selectors


Recommended Posts

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

Link to comment
Share on other sites

  • 3 weeks later...

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...