shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013
-
5 nov. 2005 à 23:02
skotmarud
Messages postés116Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention26 janvier 2008
-
6 nov. 2005 à 10:54
Bonjour,
j'ai un projet de faire un petit bot irc, tout sommaire au debut pour m'ameliorer avec les sockets en C, le socket se connecte bien mais je pense que les messages send ne sont pas envoyés, quelqu'un pourrait t'il me faire une correction de ma ou mes erreurs s'il vous plait et m'expiquer d'ou cela vient
Sous le procole IRC, la requette USER passe devant la requette NICK, deplus il ya un separateur qui est le saut de ligne classique: \n
Deplus, la majorité des serveurs IRC demmande un PING -> PONG avant de dire: "Toi t'est un vrai user!" , le ping/pong doit de preference etre dans un thread separer pour eviter le revc() bloquant (voir l'erreur classique: la boucle infini utilisant 100% du CPU).
Pour de petites initiations comme celle-ci les char statiquement alloué suffisent, parcontre commance dés aujoudhui a t'initier aux char dynamiquement alloué -> malloc() realloc() free().
Deplus je ne voit pas de memset() nul part, strcpy() est a eviter => strncpy().
Il ya une sympatique source d'un robot IRC sur ce site, une recherche s'impose donc, tu peux aussi aller voir la RFC, elle ne t'expliquera le protocole a suivre pour avoir un bot correct.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 6 nov. 2005 à 01:35
salut,
en + ya un buffer overflow (probleme le plus dramatique du C) sur ton tableau char ip[15] (solution; utilise char ip[16];)
au lieu de vouloir avoir pile la bonne taille, tu aurais du prévoir un
peu de mou, ca t'aurait peut etre éviter un pb ... allez recompte : une
ip au max, c'est 4 nombres de 3 chiffres, et 3 points qui les
separent... ca, ca fait effectivement 15 caractere, pas de bol t'as
oublié le caractere 0 qui marque la fin de la chaine, et qui fait
déborder ton tableau.
skotmarud
Messages postés116Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention26 janvier 2008 6 nov. 2005 à 08:23
j'ai oublier de dire : telecharge netcat c'est un utilitaire en console qui aide beaucoup pour créer des client/serveur.
par exemple là pour vérifier le probleme dans une console tu fais "nc -v -l -p 6667" pour mettre sur ecoute ton port 6667 et apres avec ton bot tu te connect sur l'ip 127.0.0.1 port 6667 et tu vois tout de suite que ton bot envoie tout en une seule ligne sans retour a+
Vous n’avez pas trouvé la réponse que vous recherchez ?