Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Récupérer le numéro d'un port libre [ Archives / Au secours ] (DMK04)

jeudi 16 février 2006 à 23:29:42 | Récupérer le numéro d'un port libre

DMK04

Bonjour,
je voudrais savoir comment  peut-on récupérer le numéro d'un port libre en java?
Merci pour votre aide


vendredi 17 février 2006 à 08:02:29 | Re : Récupérer le numéro d'un port libre

eddyger

Réponse acceptée !

Bonjour,

Deux solutions :

soluce 1) Tu veux maîtriser le numéro de port à allouer :

1 a) soit tu fais confiance à /etc/services (Unix) (\WINDOWS\system32\drivers\etc\services pour Windows) en le parcourant et tu prends le port max + 1 (bof ?!)

1 b) soit tu suis la convention : les ports inférieurs à 1024 sont réservés aux services standards et donc tu parcours la liste des ports en cours alloués dynamiquement par le système (> 1024) , cf rpcinfo -p Unix, netstat -an sous Unix + windows, avec Runtime.exec() (bof aussi)

1 c)Méthode un peu brute (quoi que ...) : avec les classes java.net.BindException java.net.ServerSocket

tu peux faire un truc genre:

int localport = 1024;

boolean bindIsDone = false;

final int nombreMaxTentative = 1000 ;

ServerSocket server = null ;

int tentative = 0;

while (!bindIsDone && tentative <= nombreMaxTentative){

  try{

        tentative++;
        localport++;
        server = new ServerSocket(localport);
        bindIsDone = true ;

 }catch (Exception e){

  if ( !(e instanceOf BindException) ) throw e;

 }

if (bindIsDone) //localport est bien libre

}

2) enfin la solution la plus simple mais tu ne choisis pas ton port :

ServerSocket server = new ServerSocket(0);

int lePortAlloueEtQuiEtaitLibre = server.getLocalPort();

ed




vendredi 17 février 2006 à 10:06:46 | Re : Récupérer le numéro d'un port libre

DMK04

Merci,

en fait je cherchai un port libre aléatoire, après avoir accepté une connexion et l'avoir accepté, le serveur envoyai une numéro de port libre pour discuter et ainsi laisser le port d'écoute libre. Ce que j'avais fait ne marchait pas car j'avais mi :
ServerSocket server = new ServerSocket();
au lieu de ServerSocket server = new ServerSocket(0);
Quand je demandais le port auquel il était attribué il me disai -1 ...
Bref c'est la solution 2) que je cherchais.

Merci



Cette discussion est classé dans : récupérer, port, libre, numéro


Répondre à ce message

Sujets en rapport avec ce message

récupérer numéro de la ligne d'un .xls avec JExcelAPI. [ par juliodu62138 ] bonjour,Je voudrais récupérer le numéro d'une ligne d'un fichier Excel. J'utilise JExcelAPI; Je n'ai rien trouvé dans la doc fourni. Pourtant, j'en es Récupérer l'espace libre d'un disque ??? [ par Javapabien ] Bonjour amateurs et pros de java,moi je souhaiterais trouver le moyen de connaitre l'espace libre d'un disque dur dans une appli java. (et ensuite res port série et javax.comm [ par lordfrancky ] lord of francky Je voudrais just savoir comment on repère un numéro de port et en l'occurence le numéro de port série.Afin de pouvoir communiquer avec Icones divers [ par terminagroo ] Bonjour,Voilà je suis actuellement en train de créer une application en Java et j'ai besoin des icônes standards de Windows, à savoir, ouvrir, enregis Port parallele [ par marti90 ] Bonjour, je suis entrain d'écrire une apli Windows 98 ou XP qui doit controler un peu d'électronique en passant par le port parallèle. Je doit donc co Ecriture sur le port parallele avec javax.comm [ par bouban ] Bonjour,j'essai d'ecrire sur le port parallele avec javax.comm mais j'utilise windows xp et apperement ca bloque avec. j'aimerais savoir si quelqu'un ACCESS Impossible de récupérer l'heure d'1 champs d'1 BDD [ par kobee12 ] Bonjour à tous, J'ai créé une BDD sous access dans laquelle j'ai une table qui comporte un champs de type date/heure dans lequel je saisie une heure a communication port usb [ par bouban ] bonjour,je voudrais lire et ecrire sur le port usb. est ce que quelq'un qui a deja fais ca en java peut m'aider merci. transfert ftp [ par lapartdombre ] J'ai essayé d'utiliser la classe FtpConnection.java de http://www.javafr.com/code.aspx?ID=22367 mais je n'arrive pas à faire des download sur mon serv Ecrire dans un fichier texte [ par emiraMh ] bonjour,j'ai developpé un programme réseau qui fait l'écoute du port 514 et enregistre les paquets reçus dans des fichiers textes (logs).L'écoute du p


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.