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 C Discussion :

fd_set fonctionnement interne ?


Sujet :

Réseau C

  1. #1
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 209
    Points
    23 209
    Par défaut fd_set fonctionnement interne ?
    Bonjour,

    On peut utiliser les FD_SET grâce à 4 macro :
    - FD_CLR : pour enlever un file descriptor
    - FD_ZERO : pour enlever tout les files descriptor
    - FD_SET : pour ajouter un file descriptor
    - FD_ISSET : pour vérifier la présence d'un file descriptor.

    Mais derrière, comment sont censé être stocké les différents files descriptor?
    Théoriquement après un select, on est censé n'avoir dans le fd_set que les files descriptor qui on reçu des données ou qui sont disponible en lecture etc.
    Donc pourquoi tester avec FD_ISSET nos 1 000 files descriptor (voir beaucoup plus dans certains cas) si les files descriptor dont on a besoin sont déjà dans le fd_set, pourquoi ne pas récupérer la liste des files descriptor ?


    Est-ce que fd_set ne serait pas un char[(FILE_DESCRIPTOR_MAX + 7)/8] (donc FILE_DESCRIPTOR_MAX bits minimum).
    Avec pour chaque bit correspondant à un numéro de file descripteur un bit à 0 s'il n'est pas présent et un bit à 1 s'il est présent ?

    J'ai essayé de regarder une implémentation mais c'est un peu illisible^^

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Si tu as beaucoup de file descriptors, typiquement tu utilisera poll() ou epoll() plutôt que select().

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 209
    Points
    23 209
    Par défaut
    Citation Envoyé par matafan Voir le message
    Si tu as beaucoup de file descriptors, typiquement tu utilisera poll() ou epoll() plutôt que select().
    Merci pour ta réponse.
    Si j'ai bien compris le man, poll et epoll donneront directement des structures contenants les files descripteurs ayant reçu un évènement.

    C'est bien plus pratique au niveau programmation mais est-ce qu'il y a des différences niveau performances?
    A partir de combien de file descriptors estimes-tu qu'il y en a "beaucoup" ?

    Pour associer un file descriptor à un utilisateur, il suffit de créer un tableau de pointeur sur une structure utilisateur avec en indice le file descriptor ou connais-tu une meilleure solution ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/08/2006, 22h51
  2. Fonctionnement interne
    Par menzlitsh dans le forum Windows XP
    Réponses: 7
    Dernier message: 31/03/2006, 00h32
  3. Fonctionnement interne des outils de gestions de paquets
    Par Spoutnik dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/03/2006, 14h52
  4. Fonctionnement interne de l’OpengGL
    Par Ekinoks dans le forum OpenGL
    Réponses: 10
    Dernier message: 06/12/2005, 15h44
  5. Question sur le fonctionnement interne au moteur PHP
    Par Leviathan_72 dans le forum Langage
    Réponses: 3
    Dernier message: 25/11/2005, 02h17

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