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 C Discussion :

write() dans une socket.. unix


Sujet :

Réseau C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut write() dans une socket.. unix
    yop tlm,

    pitit problème pr mon client irc,
    en fait j'aurais besoin d"écrire USER blabla et NICK blabla au serveur

    tte la partie socket est bonne et il me reste plus ke cette écriture pr être réellement connecter au serveur.

    donc pr l'instant j'ai ça:

    char *msg1 = "USER slack slack@localhost localhost :R proute proute";
    char *msg2 = "NICK slack_c";
    int len;

    [...]

    len = strlen(msg1);
    write(sockfd,msg1,len);
    len = strlen(msg2);
    write(sockfd, msg2, len);

    --------------------------------

    mais bon voilà aprés compilation j'pars encore en pingtimeout!
    la vous allez m'dire.. ben oui t con c normal tu réponds pas au ping mais voila le serveur avec lekel j'essaye ceci accepte des utilisateurs ki n'répondent pas au PING initial.. en gros si juste USER et NICK sont valable alors j'pe rentrer sur le serv mais pas autrement!

    voilà c t long merci bcp j'attends votre aide!

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Points : 105
    Points
    105
    Par défaut
    Salut,

    je crois qu'il est important d'envoyer NICK en tout premier, puis USER. De plus, le "\r\n" est indispensable en fin de commande (c'est peut etre plus cette deuxième condition qui est importante).

    Pour avoir aussi développé un client irc, je n'ai jamais rencontré de serveur tolérant à la non réponse au ping. M'enfin si c'est une fonctionnalité du serveur... En tout cas il vaut mieux l'intégrer par la suite si tu veux etre compatible avec la pluplart des serveurs...

    golem
    +++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    oki mais en fait de tte façon pong ou pas j'ai pas de demande de PING puiske pour avoir celle ci faut s'être identifier (NICK & USER)
    l'ordre n'a pas d'importance a en croire le telnet 6667 sur ce serveur.
    j'comprends pas ou il faut mettre le "\r\n"?

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Points : 105
    Points
    105
    Par défaut
    bah à la fin de ta commande!

    char *msg2 = "NICK slack_c\r\n";

    ptet que t'y arrive pas avec telnet, parce qu'il envoie seulement \r ou \n.


    golem
    +++

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 36
    Points
    36
    Par défaut
    oui, je confirme, la presence du \r et \n est indispensable, l'ordre ne l'est pas, je peux aussi le garantir...

    cependant ton USER est faux car il lui manque un element...

    USER [username] [hostname] [servername] :[realname]

    il n'est pas important selon les serveurs de respecter le " :" ou de faire ": ", mais certains serveurs sont sensible a ce et la norme definit " :" (l'espace en premier puis deux point ':' et le realname coller)

    je precise que chaque info ne doit pas forcement etre valable, pour gagner du temps quand je me connecte a un serveur irc en telnet je fait USER 1 1 1 :1 et ceci fonctionne
    Fatalis
    "La femme est le chef-d'oeuvre de Dieu, surtout quand elle a le diable au corps" Alphonse Allais

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    ahhhh ben voilà ça marche!!!!!

    merci bcp a vous c super sympa d'avoir répondu

    j'v enfin pouvoir passer au chose serieuse lol

    ++ et encore merci

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

Discussions similaires

  1. Exception levée lors d'un write dans une socket
    Par Anium dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/03/2011, 09h41
  2. Image dans une socket
    Par V_R46 dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 04/12/2006, 19h48
  3. [VB.NET] Envoyer TreeNodes dans une socket
    Par Aspic dans le forum VB.NET
    Réponses: 10
    Dernier message: 18/02/2006, 16h29
  4. Réponses: 20
    Dernier message: 23/09/2005, 13h50
  5. plusieurs document.write dans une meme page
    Par Loko dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/07/2005, 17h16

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