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

Langage Perl Discussion :

Multitache en perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut Multitache en perl
    Bonjour a tous.
    Je suis actuellement en train de réfléchir a l’architecture de mon code pour réaliser un chatt type IRC en PERL.

    J’avais pensé a utilisé (pour mon exemple) 3 machines.
    - 1 serveur
    - 2 clients

    Ce que j’ai imaginé :
    Les clients ont une interface créée grâce a GTK qui ressemblerai a une fenêtre MSN. (une partie haute qui affiche la conversation et une partie basse qui permet d'écrire les messages.

    Comment je vois les choses :
    - Dans la partie haute (lecture), je pensai mettre un code de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (my $input = <$sock>) {
        chop $input;
            # Print the raw line received.
            print "$input\n";
        }
    Donc avec une ecoute constante de ce qui se passe.

    - Et dans la partie ecriture, l’utilisateur pourrait ecrire son messsage.


    Toutefois, ça implique un espèce de multitâche car la partie lecture tourne sans cesse, je me demandai donc comment mon utilisateur pourrait écrire ? Y a-t-il un moyen de faire ce multitâche ? (car le fork ne répond pas a ce type de problème il me semble)

    Sinon, que pensez vous de cette approche? est elle judicieuse?

    Merci,
    Cordialement,
    Benjamin

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Tu peux réaliser ceci sans multitâche, grâce à la fonction select (qui n'est pas simple à utiliser, je le concède). Cette fonction permet de sélectionner le handle qui contient "quelque à lire", sans faire la lecture.
    De cette manière, lorsque tu va lire, tu es certain de lire quelque chose, et tu peux te permettre de faire des lectures bloquantes.

    Sinon, il existe me semble-t-il un moyen de faire des lectures non bloquantes, mais le processus me semble encore plus compliqué à gérer (fonction ioctl) et moins portable, me semble-t-il.

    Des modules existent (je ne les ai plus en tête) qui permettent de faciliter l'usage de select (IO::Select ?).

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    En effet, c'est une piste intéressante qui me permet de sortir de mes situations bloquantes.
    D'ailleurs, voici un lien vers un site expliquant un peu le selct pour mon cas (donc le cas d'un serveur a l'écoute)
    http://www.perlfect.com/articles/select.shtml

    Je pars donc réfléchir a ce sujet.
    Merci,
    Benjamin

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

Discussions similaires

  1. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  2. [langage] Inclure de perl en c !!!
    Par ryo00 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2002, 10h03
  3. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  4. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 17h22
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

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