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

Autres éditeurs Discussion :

sockets : tester la présence de donner à recevoir


Sujet :

Autres éditeurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut sockets : tester la présence de donner à recevoir
    bonjour,
    j'utilise la librairie socket
    ayant fait un petit peu de MPI, je sais qu'il est possible, avec MPI, de tester la présence d'un message reçu.
    est-ce possible avec des sockets?
    je voudrais faire qque chose comme :

    si j'ai recu des données alors
    > recevoir les données
    > traiter les données
    sinon
    > faire autre chose
    finsi

    j'ai peut être mal regardé mais je n'est rien trouvé de tel dans socket.h

    merci

  2. #2
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Tu as la fonction recv qui est bloquante et qui réagit dès qu'un flux de données est reçu. Sous quel système travailles-tu ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    merci,
    je suis sous linux - suse 10.1
    j'ai bien vu la fonction recv, mais puisqu'elle est bloquante ca colle pas, non?
    en fait je voudrais faire un serveur qui peut recevoir des données et les traiter mais en l'absence de données, le serveur a du boulot à faire.
    sinon je peux toujours multi-threader le tout mais j'ai la flemme.

  4. #4
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Une solution est de dupliquer le processus : pendant que l'un écoute le port, l'autre fait ce qu'il a à faire.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    ouais t'as raison ca devrait etre bon.
    je vais le tenter comme ca

    merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    non la vraie solution (ATTENTION : sous *n*x. PAs le même mécansime sous Windows (threads)), est de passer le socket en mode non-bloquant, et d'enregistrer une routine à appeler lors de la réception d'un SIGIO. Il faudra de plus, pour toute sécurité, ajouter un "poll" pour vérifier que ce n'est pas un signal fantôme, un changement d'état du socket, et autre....

    Si tu veux, il y a plusieurs exemples dans la FAQ et les sources C, et sur le forum C..

Discussions similaires

  1. tester la présence des parametres
    Par Delphi-ne dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2005, 20h51
  2. VBA - Tester la présence d'un composant
    Par n1portki dans le forum Général VBA
    Réponses: 1
    Dernier message: 20/09/2005, 05h18
  3. Comment tester la présence de machine ?
    Par bluesnr dans le forum Web & réseau
    Réponses: 9
    Dernier message: 22/04/2005, 17h20
  4. [JSP]Tester la présence d'un attribut
    Par StagiaireEnGalère dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 08/02/2005, 09h35
  5. Réponses: 11
    Dernier message: 02/04/2004, 18h33

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