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 :

send () bloquante


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut send () bloquante
    salut,
    est ce que quelqu'un peut m'expliquer quand send() est bloquante
    mon problème est que le serveur envoie les données au client avec send() et malgré que ces données sont bien reçu par le client, le serveur est encore bloqué. si c'est normal comment rendre send() non bloquante.
    merci.

  2. #2
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    un petit coup de man sur send:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     When the message does not fit into the send buffer of the socket, send() normally blocks, unless the socket has been placed  in  non-
           blocking I/O mode.  In non-blocking mode it would return EAGAIN in this case.  The select(2) call may be used to determine when it is
           possible to send more data.
    Es-tu sur de tout avoir récupéré côté client ?
    Faudrait voir le code ...

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut
    oui c'est ca, le serveur émet un message au client, le message est bien reçu
    par ce client (affiché) mais le serveur est encore bloqué

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par mayu5 Voir le message
    est ce que quelqu'un peut m'expliquer quand send() est bloquante
    http://www.opengroup.org/onlinepubs/...ions/send.html
    If space is not available at the sending socket to hold the message to be transmitted, and the socket file descriptor does not have O_NONBLOCK set, send() shall block until space is available. If space is not available at the sending socket to hold the message to be transmitted, and the socket file descriptor does have O_NONBLOCK set, send() shall fail. The select() and poll() functions can be used to determine when it is possible to send more data.
    Tant que les données ne sont pas parties (ce qui peut arriver si le trafic est important, car physiquement tout est sérialisé dans un seul tuyau à la fois).
    mon problème est que le serveur envoie les données au client avec send() et malgré que ces données sont bien reçu par le client, le serveur est encore bloqué. si c'est normal comment rendre send() non bloquante.
    merci.
    Pas normal du tout. Tu as touché à la configuration des sockets ?

Discussions similaires

  1. Rendre fonction send bloquante
    Par sivaller dans le forum Windows
    Réponses: 5
    Dernier message: 10/09/2008, 11h49
  2. [SOCKET] comment rendre send() bloquant
    Par damien99 dans le forum Visual C++
    Réponses: 4
    Dernier message: 23/02/2007, 16h15
  3. [SOCKET C] deux send() pour un recv()
    Par trois_1 dans le forum Développement
    Réponses: 4
    Dernier message: 01/12/2003, 19h13
  4. [API] Communication série NON-bloquante : OVERLAPPED/Thread
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/11/2003, 13h43
  5. SendMessage bloquant l'exécution du programme
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2003, 19h26

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