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/Web Python Discussion :

Client IRC et algorithmie


Sujet :

Réseau/Web Python

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Par défaut Client IRC et algorithmie
    Bonjour,

    EDIT:
    Je reviens cela dit sur le sujet au sujet d'un gestionnaire d'évenements..
    Les événements peuvent être n'importe quoi, n'importe quelle ligne renvoyé par le serveur peut être potientiellement un événement, un message, une deconnexion, une invitation, un kick, etc...

    Comment mettre en place un tel système ? de manière modulable.

    Auriez vous quelques exemples ? Documentations à ce sujet ?

    Merci d'avance..


    J'ai besoin de développer un client IRC, pour l'instant sans gui, juste en ligne de commande...
    Bref, pour commencer j'ai cherché s'il existant un module IRC, mais ceux que j'ai trouvé ne me convenait guère.. et puis j'ai le temps...

    Pour commencer donc, j'ai décidé d'écrire simplement une classe IRC, qui fera l'abstraction de la connexion, ainsi que de l'envoie de commande 'raw' au serveur (je l'étendrai ensuite pour faciliter les commandes classiques).

    Mais voilà, je débute dans ce genre de programmation, et voilà qu'après quelques lignes je bloque..


    En effet, je n'arrive pas à gérer de manière asynchrone l'entrée de commande par un utilisateur, et les données envoyées par le serveur.

    Un exemple concret :
    Je me connecte au serveur j'envoie les informations nécessaires (nick, username, etc..)

    Une fois la connexion terminée j'aimerai proposé à l'utilisateur un prompt simple du genre 'Entrez le salon que vous souhaitez rejoindre: ' avec un raw_input()

    Mais voilà, si je veux être attentif aux données envoyés par le serveur, j'ai besoin de faire

    while 1:
    data = s.recv(1024)
    if not data:
    break
    print data

    Dans le cadre de cette boucle je peux évidement ajouter mon 'raw_input' mais dans ce cas, je devrais attendre que l'utilisateur tape qqchose pour afficher la ligne suivante...

    J'ai étendu parler des callbacks mais je ne suis pas sur que ça soit la solution, et je n'ai pas encore trop saisi leurs utilisations ainsi que leur applications..

    Auriez vous quelques idées ? Des conseils sur l'algorithmie à adopter ?

    Merci d'avance !

  2. #2
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Si tu dois à la fois réagir au serveur et attendre quelque chose de l'utilisateur, il te faudra une thread pour la gestion de la connexion.

Discussions similaires

  1. Quel client IRC utilisez vous ?
    Par mavina dans le forum IRC / mIRC
    Réponses: 61
    Dernier message: 12/08/2010, 10h25
  2. Projet de client IRC
    Par Leobaillard dans le forum Web & réseau
    Réponses: 13
    Dernier message: 06/03/2006, 18h13
  3. Client Irc avec IdIRC1 (indy 9)
    Par Coussati dans le forum Web & réseau
    Réponses: 1
    Dernier message: 21/11/2005, 23h29
  4. Aide pour un client irc
    Par Coussati dans le forum Web & réseau
    Réponses: 1
    Dernier message: 01/11/2005, 02h35
  5. Réponses: 2
    Dernier message: 31/08/2002, 21h37

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