Creepy_p0ney
chef des poneys voodoo
Messages : 146
Sujets : 9
Points: 24
Inscription : Dec 2011
|
[C] bot irc
voilà comme certains auront pu le remarquer sur l'irc, j'ai créer un bot, mais il a un certain bug c'est qu'il affiche plusieurs fois la même chose (le dernier message qu'il a envoyé). Mais je pense savoir pourquoi, mais je sais pas comment y remedier voici mon code : Code : #include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/wait.h>
int main(){
int sockfd;
struct sockaddr_in addr;
char pseudo[100]="NICK botfireWave\r\n";
char channel[100]="JOIN #bot\r\n";
char user[100]="USER botfireWave botfireWave botfireWave :bot c\r\n";
char buf[256];
char question[256]="https://www.google.fr/search?q=";
char question2[256];
char papa[100]="c'est qui papa";
char *suiteChaine;
int i=0;
printf("%s\n%s\n",pseudo,channel);
if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){
perror("socket");
exit(1);
}
addr.sin_family=AF_INET;
addr.sin_port=htons(6667);
addr.sin_addr.s_addr = inet_addr("88.191.137.197");
if(connect(sockfd,(struct sockaddr *)&addr,sizeof(struct sockaddr))<0){
perror("connect");
exit(1);
}
printf("connect");
send(sockfd,pseudo,strlen(pseudo),0);
recv(sockfd,buf,256,0);
printf("%s",buf);
printf("envoi nick");
send(sockfd,user,strlen(user),0);
recv(sockfd,buf,256,0);
printf("%s",buf);
printf("envoi usr");
send(sockfd,channel,strlen(channel),0);
recv(sockfd,buf,256,0);
printf("%s",buf);
printf("envoi chan");
send(sockfd,"PRIVMSG #bot :je suis de retour pour vous jouer un mauvais tour\r\n",strlen("PRIVMSG #bot :je suis de retour pour vous jouer un mauvais tour\r\n"),0);
while(1){
recv(sockfd,buf,256,0);
if(strstr(buf,"PING")!=NULL){
send(sockfd,"PONG\r\n",strlen("PONG\r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"comment vas tu ")!=NULL)){
send(sockfd,"PRIVMSG #bot :je me porte bien merci\r\n",strlen("PRIVMSG #bot :je me porte bien merci\r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,papa)!=NULL)){
send(sockfd,"PRIVMSG #bot :c'est fireWave yeahhh \r\n",strlen("PRIVMSG #bot :c'est fireWave yeahhh \r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"bonjour tous")!=NULL)){
send(sockfd,"PRIVMSG #bot :ces sites son interdits monsieur !!!!\r\n",strlen("PRIVMSG #bot :ces sites son interdits monsieur !!!!\r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"parle moi de ton createur")!=NULL)){
send(sockfd,"PRIVMSG #bot : bientôt 15ans seconde générale\r\n",strlen("PRIVMSG #bot :bientôt 15ans seconde générale \r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"horgh_")!=NULL)){
send(sockfd,"PRIVMSG #bot :attention aux liens de horgh_ âme sensible s'abstenir\r\n",strlen("PRIVMSG #bot :attention aux liens de horgh_ âme sensible s'abstenir\r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"hommeparfait")!=NULL)){
send(sockfd,"PRIVMSG #bot :pfff op il veut me kick c'est pas bien !!!!\r\n",strlen("PRIVMSG #bot :pfff op il veut me kick c'est pas bien !!!!\r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"tu suces ?")!=NULL)){
send(sockfd,"PRIVMSG #bot :non et toi ?\r\n",strlen("PRIVMSG #bot :non et toi ?\r\n"),0);
}
if((strstr(buf,"PRIVMSG")!=NULL)&&(strstr(buf,"Supersnail")!=NULL)){
send(sockfd,"PRIVMSG #bot :il est op, mais je ne vais pas troll j'le suce bien\r\n",strlen("PRIVMSG #bot :il est op, mais je ne vais pas troll j'le suce bien\r\n"),0);
}
printf("%s",buf);
}
close(sockfd);
mon probleme je pense est sur cette ligne ci (il a encore le precedent message je pense) Code : recv(sockfd,buf,256,0);
merci d'avance
|