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 :

garder un FIFO ouvert en lecture


Sujet :

Réseau C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut garder un FIFO ouvert en lecture
    Bonjour,

    pour un serveur, je dois ouvrir un FIFO et attendre des connexions.

    une FIFO reste ouvert tant qu'il est ouvert en écriture (par des clients)

    donc lorsqu'un client se connecte puis se deconnecte, le FIFO n'est plus ouvert en écriture et le serveur se ferme ...

    j'aimerais que le serveur reste à l'écoute du FIFO sans avoir à le réouvrir.

    j'espere que je m'en sors pas trop mal avec mes explications. j'imagine que la solution doit être un truc tout bête, comme un flag à positionner, mais pas moyen de trouver.

    merci si vous avez une idée

    OuiOui
    http://www.art-flashie.com

  2. #2
    Membre régulier Avatar de Hypnos
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 87
    Points : 108
    Points
    108
    Par défaut
    salut,

    quand tu parles de FIFO, tu parles de quoi ?? D'un socket ?

    Si c'est ça, pour gérer plusieurs clients tu peux utiliser la fonction fork() si tu es sous unix, sous win32 je sais plus, mais fais une recherche sur ce forum avec le mot fork et tu trouveras bien

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    bonsoir

    non je parle pas de socket, mais des Files (premier entré premier sorti, ou first in first out) créés avec la fonction mkfifo.

    mais le principe est peut-être le même qu'avec les socket.

    j'utilise déjà un fork, en fait.

    un client se connecte au serveur principal, le serveur fait un fork, et le client communique par la suite avec le fils.

    le probleme, c'est que le client, en fermant la premiere connexion au serveur, ferme également la file (ou la socket, si ça marche pareil)

    quand le serveur va attendre une connexion, il est bloqué (par la fonction read) en attendant qu'on y écrive, mais dès que le client se deconnecte, le programme serveur se termine ...

    merci quand même

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    bah moi je comprend rien a ton histoire de file, mais j'en aio deja entendu parler

    je te propose de faire de ce fait comme pour les sockets, on va dire que ce n'est pas apres une perte qu'on va se dire qu'on a perdu un truc, alors on va se preparer a l'avance...

    pour les sockets, ce que nous faisons, c'est que des qu'un client se connecte, le serveur creer une nouvelle connexion pour un prochain client, et accpete ensuite le client en cours... de ce fait, si le client en cous meurt ou se deconnecte, une nouvelle connexion est deja prete pour le prochain, et ainsi de suite

    donc en gros :

    1. creer une connexion
    2. un client arrive
    3. on creer une nouvelle connexion
    4. on accpete celle en cours

    l'etape 3 sera en fait l'etape 1 du prochain client
    j'espere avoir ete assez claire, sinon n'hesite pas a le dire

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut merci bien
    ah ben c'est une solution qui me convient tout à fait.

    et si on fait comme ça avec les socket, on doit surement faire pareil avec les FIFO ...

    merci beaucoup
    OuiOui


    PS: j'ai une autre question qui doit marcher comme les sockets (je la pose dans un nouveau sujet) si jamais tu as encore 5 minutes à perdre

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

Discussions similaires

  1. [webdav] fichier ouvert en lecture seule
    Par Invité dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 04/12/2006, 10h15
  2. Garder un menu ouvert apres réactualisation de la page
    Par krolineeee dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/06/2006, 15h24
  3. [VB6]Garder une feuille ouverte jusqu'à un clic
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/04/2006, 13h04
  4. Réponses: 2
    Dernier message: 05/04/2006, 16h25
  5. [c#] comment faire pour garder des noeuds ouverts treeview?
    Par irnbru dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/11/2005, 01h47

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