IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Verifier si un port est libre avant de l ouvrir


Sujet :

Réseau/Web Python

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut Verifier si un port est libre avant de l ouvrir
    Bonjour,
    Voila j ai un algo aui choisie un port sur une plage, mais j aimerais pouvoir verifier que le port choisi est bien libre avant de l utiliser.

    Je pensais faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
                    while port == 0        
    			port = random.randint(33000, 60000)
    			s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    			try:
    				self.logger.info("Try sur %s", port)
     
    				s.connect(("127.0.0.1", port))
    			except socket.error, e: 
    				self.logger.info("Exception %s", e)
    				port = 0 	
     
    			else:
    				self.logger.info("Fermeture du port teste")
    				s.close
    Mais le probleme est que le port teste ne se ferme pas (ou pas assez rapidement ?) puisque lorsque deux lignes en dessous je tente de l ouvrir pour de bon, celui-ci est occupe.
    Quel moyen ai je a ma disposition pour realiser ceci ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,
    Pour autant que vous ayez trouvé un port libre, vous ne pourrez l'utiliser que pour traiter des demandes de connexion "cliente".
    Question: Une fois le "port libre" assigné, comment les clients pourront savoir celui auquel se connecter?
    => Si vous pouvez assigner un port, il restera assigné. Inutile de le libérer et d'essayer de le réassigner ensuite car sauf a préciser l'option SO_REUSEADDR, il restera inutilisable un certain temps.
    Regardez l'article, il vous raconte comment fonctionne TCP/IP.
    Cordialement,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Merci beaucoup.
    Pour sa transmission au client, ce n'est pas un probleme ^^

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/05/2012, 14h29
  2. comment test qu'un port est libre
    Par akaliza dans le forum Linux
    Réponses: 3
    Dernier message: 21/03/2012, 11h24
  3. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  4. commande qui verifie si un port est occupé
    Par Jérémy Lefevre dans le forum Ubuntu
    Réponses: 1
    Dernier message: 20/07/2007, 12h08
  5. [debutant] Détecter si un port est utilisé
    Par rainz dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 01/07/2005, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo