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

Programmation et administration système Perl Discussion :

Problème de Thread IRC


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 161
    Par défaut Problème de Thread IRC
    Bonjour à tous,

    Je suis actuellement en train de tester les threads en Perl et pour être sincère, j'ai du mal.

    Je me suis basé sur un bot IRC basique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    #!/usr/local/bin/perl -w
    use IO::Socket;
    use strict;
    use threads;
    my $server = "irc.blabla.org";
    my $nick = "blabla";
    my $login = "blabla";
    my $channel = "#jesaispas";
    my $socket = new IO::Socket::INET(PeerAddr => $server,
                                    PeerPort => 6667,
                                    Proto => 'tcp') or die "bref\n";
    print $socket "NICK $nick\r\n";
    print $socket "USER $login 8 * :$login\r\n";
    print $socket "JOIN $channel\r\n";
     
    my $thread1 = threads->new(\&pingpong);
    my $thread2 = threads->new(\&attendre);
    $thread1->join;
    $thread2->join;
     
    sub pingpong {
      while (my $input = <$socket>) {
        chomp($input);
        chop ($input);  
        if ($input =~ /^PING(.*)$/i) {
              print $socket "PONG $1\r\n";
           }
        else {
              print "$input\n";
           }
       }
    }
     
    sub attendre {
      while (1) {
        print $socket "PRIVMSG $channel :!message\n";
        sleep 10;
      }
    }
    Du coup je souhaite lancer mes deux fonctions en même temps pour que le bot ne se fasse pas déconnecté par le serveur tout en affichant un message toutes les x secondes.
    De cette manière, ça ne fonctionne pas super bien, j'ai des messages qui arrivent sur le canal IRC de façon aléatoire.

    Une idée pour résoudre le problème ?

    Par avance, merci et bonne soirée.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut probleme thread irc
    bonjour,

    a mon avis, tu devrais te tourner plutot vers ceci : http://search.cpan.org/search?query=cron&mode=all

    mais si tu n as pas besoin d avoir un temps précis, tu devrais jouer avec time pour afficher un message tout les ( au minimum )

    et faire verifier le temps a chaque ping du serveur.

    mes 2 centimes

    ours_en_pluche

Discussions similaires

  1. Problème de thread : Plus de ressources système
    Par OliverSleep dans le forum C++Builder
    Réponses: 17
    Dernier message: 07/02/2006, 15h35
  2. [VB.NET] Problème de Thread
    Par Sadneth dans le forum ASP.NET
    Réponses: 26
    Dernier message: 31/01/2006, 10h12
  3. Problème synchronisation threads
    Par Linio dans le forum Concurrence et multi-thread
    Réponses: 19
    Dernier message: 11/01/2006, 16h57
  4. [MFC] Problème de Threads + Timers
    Par Invité dans le forum MFC
    Réponses: 8
    Dernier message: 30/11/2005, 10h51
  5. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 22h22

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