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

 C Discussion :

Algorithme IRC


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Algorithme IRC
    Bonjour, je code un bot IRC, du coups j'ai besoin de créer un algorithme qui récupère le pseudo et le texte pour chaque méssage envoyé sur le canal IRC que mon bot gère.
    J'ai donc codé les fonctions suivantes :

    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
    int gerer_recv(char* buff) {
    int i=1, limite = 0;
    char nick[50] = "";
    char *txt = NULL;
    txt = strstr(buff, "PRIVMSG");   
     
    if(txt == NULL) {                     // Si la chaine n'est pas un PRIVMSG on ne la traite pas
       printf("%s", buff);
       return 0;
    }
    while(buff[i] != '!' && i < 50) {  // La condition i<50 pour savoir si c'est un véritable 
    nick[i-1] = buff[i];                       // message a traiter car pseudo < 50 caractères de longs
    i++;
    }
    if(i==49)  {
    printf("%s", buff);                              
       return 0;
    }
    txt = strstr(txt, ":");
    printf("%s : %s", nick, txt+1); // On affiche la chaine située 1 caractère après le ':'
    }
     
    void* recv_line(void* data) {
    int i = 0, t_buff;
    char buff[512] = "";
    SOCKET serv = (SOCKET)data;
    t_buff = recv(serv, buff, 512, 0);
    gerer_recv(buff);
    }
    La fonction recv_line est dans un thread dans une boucle infinie dans mon main(), mais j'ai du mal avec mon algo car malgrès que je vérifie que les chaines traités contiennent des PRIVMSG, donc que au début de celle ci on a le pseudo de la source du méssage placé avant un '!' j'ai des chaines qui passent cette condition mais qui n'on pas de '!', d'ou ma condition i<50 sinon nick dépasse car la condition n'est jamais remplie.

    Et enfin, et surtout, mon programme fait chauffer mon ordi, je l'entend très vite, c'est le fait qu'il y ai un thread dans un while(1) ou car mon algo est mal fait ?

    Merci
    Dernière modification par Invité ; 01/05/2011 à 22h12.

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

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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