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

IRC / mIRC Discussion :

problème de USER


Sujet :

IRC / mIRC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut problème de USER
    bonjour,
    je vous explique mon problème, j'ai créé un client irc en python mais je souhaiterai transformer ce client en C (sous windows)
    je me connecte au serveur irc.freenode.net port 6667
    j'envoie le NICK apparemment sans problème (car si le nick est déjà pris il me le signale)
    mais le USER semble ne pas passer il reste en boucle sur un "checking ident" jusqu'à clore la connection par "time out"

    en python (et ça marche) je fait un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_socket.send('USER guest "localhost" "irc_server" :monpseudo'\r\n')
    en C j'essaye de faire la même chose:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char user[50]="USER guest \"localhost\" \"irc_server\" :monpseudo\r\n";  
        ...
        send(socket1,user,sizeof(user),0);
    voilà... il me semble que c'est exactement le même code au final...
    (pour préciser j'exécute mon python par Cygwin et je bosse le C sous Dev-C++)

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 30
    Points
    30
    Par défaut
    Salut,

    une piste:
    vérifie bien la longueur de ta chaine user, si jamais c'est pas mis à la bonne taille (en fait surtout si la taille est trop petite ^^), alors le "\r\n" qui est tout à la fin n'est peut être pas envoyé correctement et donc le serveur s'en fiche.

    a+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    je vais essayer de ce pas! j'avais pas vu que j'avais trop de caractères...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    non ça aide pas vraiment mais en fait j'ai un vrai problème:
    car le printf ne marche pas bien non plus!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        char nick[50]="NICK nono\r\n";
        char user[100]="USER guest \"localhost\" \"irc_server\" :monpseudo\r\n";
        
        ...
     
        //envoi nick:
        printf("\nenvoi NICK:\n%s\n",nick);
        send(socket1,nick,sizeof(nick),0);    
        //envoi user
        printf("\nenvoi USER:\n%s\n",user);
        send(socket1,user,sizeof(user),0);
    ca me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    envoi NICK:
    NICK nono
    
    
    envoir USER:
    USER guest "localhost" "irc_server":monpseudo
    
    ==>retour
    On voit deux nouvelles lignes entre la fin de nick et le début du user mais une seule entre user et le retour! donc effectivement il prend pas en compte le \r\n dans user mais alors là je ne sais pas pourquoi...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 30
    Points
    30
    Par défaut
    On voit deux nouvelles lignes entre la fin de nick et le début du user mais une seule entre user et le retour!
    Tes deux nouvelles lignes vide viennent du fait que tu as deux retours à la ligne, un à la fin du 1er printf et le 2e au début de l'autre printf. Et une seule avant retour, car un seul \n.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //envoi nick:
    printf("\nenvoi NICK:\n%s\n",nick);
    send(socket1,nick,sizeof(nick),0);    
    //envoi user
    printf("\nenvoi USER:\n%s\n",user);
    send(socket1,user,sizeof(user),0);
    donc effectivement il prend pas en compte le \r\n dans user mais alors là je ne sais pas pourquoi...
    Je ne vois pas ça comme ça: le send() n'est pas un printf, aucune raison de voir apparaitre ses \n\r sur la sortie standard.

    Par contre, une autre piste:
    voir si ça fonctionnerait mieux avec strlen() à la place des sizeof(). (sujet sur les différences ici)
    Sur ce cours sur les socket en C, strlen() est utilité pour l'envoi de données. Et sizeof() pour la récéption.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    génial c'est effectivement ça simplement remplacer les sizeof() par des strlen()!

    Merci beaucoup!

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

Discussions similaires

  1. Problème avec User.IsInRole
    Par frederix quest dans le forum ASP.NET
    Réponses: 6
    Dernier message: 16/11/2008, 17h36
  2. Problème avec user control
    Par 0365752 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/12/2007, 17h00
  3. Problème création user
    Par raskotub dans le forum Administration système
    Réponses: 6
    Dernier message: 13/04/2007, 13h30
  4. problème avec user Control
    Par shirya dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/03/2007, 15h02
  5. Problème gestion user
    Par RR instinct dans le forum Administration
    Réponses: 9
    Dernier message: 08/03/2007, 08h46

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