Je suis en train d'initialiser deux DatagramSockets sur les ports adjacents en tant que tels:lier Java DatagramSocket à deux ports ouverts consécutifs
int iport = 5000;
DatagramSocket sock1 = new DatagramSocket(iport);
DatagramSocket sock2 = new DatagramSocket(iport + 1);
Cependant, cela ne fonctionne pas si le port 5000 ou 5001 est indisponible. Je ne me soucie pas des ports que je lie, tant qu'ils satisfont la condition que sock1.getPort() + 1 == sock2.getPort()
. Y at-il un moyen facile de trouver deux ports adjacents sans itération sur tous les ports disponibles et en essayant de lier à chacun d'eux jusqu'à ce que je trouve deux qui fonctionnent?
Vous souhaitez probablement choisir des ports qui ne sont pas déjà réservés pour d'autres protocoles: _ [Nom du service et Registre du numéro de port du protocole de transport] (https://www.iana.org/assignments/service-names-port-numbers/service- names-port-numbers.xhtml) _. –
Pourquoi? L'exigence est complètement impraticable. Et si vous ne vous souciez pas de ce qu'ils sont, pourquoi vous souciez-vous qu'ils sont adjacents? Pourquoi avez-vous besoin de deux prises? – EJP
Je communique avec un serveur qui, pour une raison quelconque, envoie des réponses au port un plus élevé que le port que j'ai envoyé. Cela n'a pas beaucoup de sens mais je n'ai pas accès au code du serveur ... – kmell96