Je tente d'implémenter une application client avec une connexion asynchrone. Je veux savoir si je peux réutiliser un objet SocketChannel
après qu'il a échoué à se connecter à un serveur.réutilisation des canaux de socket
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false);
InetSocketAddress addr = new InetSocketAddress(host, port);
SelectionKey key = channel.register(select, SelectionKey.OP_READ, connection);
channel.connect(addr);
après est la boucle select, mon socket se éventuellement choisi parce que la connexion a échoué. Je voudrais mettre en file d'attente une autre tentative de connexion sur ce canal, et rien de ce que je fais ne semble le faire. la méthode channel.isConnectionPending()
renvoie toujours vrai (même si j'essaie de terminerConnect)
est la seule solution se débarrasser de ce SocketChannel
et en créer un nouveau?
ouais il semble qu'une fois que l'état atteint en attente il n'y a pas d'instructions pour le renvoyer à déconnecté. – aepurniet