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

Développement Discussion :

[select() sous cygwin] ouvre / ferme des ports en boucle


Sujet :

Développement

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [select() sous cygwin] ouvre / ferme des ports en boucle
    Bonjour à Tou(te)s,

    Je développe avec Eclipse et Cygwin sous XP. Un programme serveur fonctionnant parfaitement lorsqu'il est compilé avec CygwinB20 ( très vieille version ) a un comportement étrange quand je le compile avec ma version actuelle ( Cygwin 2.416 ).

    Dans ce programme j'utilise le très classique : nfound = select(maxfd + 1, &rmask, NULL, NULL, &timeout); après avoir bien sûr utilisé socket(), bind() et listen().
    Tout cela fonctionne parfaitement. Le serveur détecte les clients, leur attribue des sessions, etc ... MAIS ...

    A *chaque* appel de la fonction select(), soit toutes les demi-secondes dans mon cas, un couple de ports est ouvert et refermé immédiatement (en Cygwin 2.416 mais pas en CygwinB20). Je vois cela grâce au logiciel "Active Ports" qui trace dynamiquement les ports ouverts. Les numéros de ports défilent en permanence au rythme de 4 par seconde et rebouclent lorsque la limite de l'OS est atteinte.

    L'exécution en pas à pas avec gdb sous Eclipse montre clairement que le responsable est bien la fonction select(), du moins en tant que cause racine. Le problème est que, en plus de mon thread principal, cygwin crée deux threads de son crû, que je ne peux pas débugger (aucune info de debug) et qui semblent dédiés aux synchronisations ( WaitForMultipleObjects etc ...). C'est sans doute dans l'un d'eux que cette gestion parasite a lieu.

    Bien que mon serveur fonctionne, tout ceci me gène pour plusieurs raisons :
    - l'ouverture / fermeture de ports pénalise sans doute plusieurs logiciels ( OS, firewall, etc ... )
    - risques (faibles) d'empêcher certaines applications d'ouvrir les ports qu'elles souhaitent (si pas de chance)
    - "bruit de fond" permanent sur mon logiciel de surveillance graphique des débits réseau
    - saturation possible au fil de temps de certaines piles système ?
    - faille de sécurité ?

    L'un d'entre vous aurait-il une idée de ce qui se passe ?
    Merci.

    Amicalement. Pulsar33

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Dur dur ...
    Bonsoir à Tou(te)s,

    A défaut de réponse, puisqu'il semble que mon problème ne vous évoque rien, sauriez-vous où je peux poser cette question avec une petite chance d'obtenir une réponse ou un début de piste ?

    Merci d'avance.
    Amicalement. Pulsar33

Discussions similaires

  1. utilisation des ports COM1 & USB sous cygwin
    Par fourchette dans le forum Linux
    Réponses: 0
    Dernier message: 24/05/2010, 18h47
  2. Réponses: 2
    Dernier message: 20/04/2006, 10h00
  3. Gestion des ports sous windows
    Par wass dans le forum Windows
    Réponses: 1
    Dernier message: 19/04/2006, 17h44
  4. controle des ports sous Delphi
    Par jakjoud dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 10/07/2005, 19h16
  5. Routines de gestion des ports sous Windows XP
    Par wiccanhelios dans le forum Windows
    Réponses: 2
    Dernier message: 14/11/2003, 08h02

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