J'écris un client IRC en C++ (avec l'aide de la bibliothèque SFML), mais il se comporte bizarrement. J'envoie les commandes NICK et USER et je peux me connecter au serveur, mais la commande JOIN a beaucoup de choses étranges qui se passent que je dois écrire "Le code aléatoire qui fonctionne magiquement" pour résoudre. Je suis assez sûr que les commandes adhèrent à la RFC IRC ainsi.Client IRC - Pas de réponse sur JOIN
Je sais que les sockets envoient ce qu'ils sont censés envoyer et je l'ai vérifié avec Wireshark, ce que je poste ici est ce que le message du paquet est. Dans les exemples qui suivent la prise est déjà connecté au serveur IRC (qui dans ce cas est irc.freenode.net)
Cela fonctionne:
char mess[] ="NICK lmno \n\rUSER lmno 0 * :lmno\n\rJOIN #mytest\n\r";
Socket.Send(mess, sizeof(mess));
Cela ne signifie pas:
char msg[] = "NICK lmno \r\nUSER lmno 0 * :lmno \r\n";
char msga[] = "JOIN #mytest \r\n";
Socket.Send(msg, sizeof(msg));
Socket.Send(msga, sizeof(msga));
mais curieusement cela fonctionne:
char msg[] = "NICK lmno \r\nUSER lmno 0 * :lmno \r\n";
char msga[] = "JOIN #mytest \r\n";
Socket.Send(msg, sizeof(msg));
Socket.Send(msga, sizeof(msga));
Socket.Send(msga, sizeof(msga));
J'ai fait des recherches sur ce sujet et personne ne semble avoir le sa moi problème. Stranger est que lorsque j'ai essayé cela dans telnet, je n'ai qu'à envoyer JOIN une fois. Quelqu'un peut-il me donner des conseils?
Merci, SFI
Ah, merci! Je l'ai eu sur toutes les instructions sauf une. Merci beaucoup – SFI
Utilisez 'strlen()' au lieu de 'sizeof() - 1'. –