begin process at 2010 03 19 17:43:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

Récupérer le numéro d'un port libre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer le numéro d'un port libre

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ée 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...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales