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 :

Les subtilitées d' epoll suite


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut Les subtilitées d' epoll suite
    Bonjour,

    Je suis entrain d'utiliser epoll dans une application client/serveur multiclients sur connexions tcp.

    Je l'utilise en mode "classique" cad en mode level triggered..

    J'aimerais savoir pourquoi, parfois, epoll m'indique un descripteur de socket prêt en lecture (EPOLLIN) alors que lorsque je fait un read sur le descripteur juste après, il n'y a rien a lire : read revoie donc 0...

    Ceci se produit lorsque je détruis brutalement mon client avec un signal 15.
    Je précise qu'a cet instant le client a déja ecrit sur la socket de son coté...

    Pourquoi le read renvoie il 0 alors que epoll indique que le descripteur est prêt en lecture, normalement ne devrait on pas avoir des données a lire?

    Je précise pour info que j'utilise la boucle locale pour les tests.

  2. #2
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Si read te renvoie 0 sur une socket, ça veut dire qu'elle est déconnectée (c'est d'ailleurs de cette façon qu'on arrive à voir si le client est toujours connecté). Si tu tentes d'écrire sur une socket déconnectée, tu recevras le signal SIGPIPE sur unix.

    EDIT: je précise que c'est dans le cas d'une socket bloquante (ce qui est le cas par défaut).

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Merci imperio,

    Ça veut donc dire que le client c'est déconnecté entre l'appel a epoll et read...
    Sinon epoll aurait renvoyé EPPOLUP...

    Ok, ça me parait plus clair maintenant.

  4. #4
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Vois ça comme ça : ta socket a été déconnectée donc le statut en lecture a changé donc epoll se débloque. Il est très important par ailleurs d'être sûr d'écrire dans une socket connectée (comme je l'ai déjà dit dans mon précédent post). Mets le sujet en résolu si c'est bon.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les subtilités d' epoll
    Par dodo285 dans le forum Réseau
    Réponses: 5
    Dernier message: 30/05/2013, 13h43
  2. Réponses: 11
    Dernier message: 22/04/2008, 11h54
  3. Les subtilités de DOM
    Par Sly2k dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 18/05/2007, 10h42
  4. Réponses: 6
    Dernier message: 01/12/2006, 17h32
  5. Réponses: 2
    Dernier message: 19/07/2006, 00h12

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