Besoin d'aide sur les Thread Pour Bot MirC [Résolu]

Signaler
Messages postés
47
Date d'inscription
vendredi 21 mai 2004
Statut
Membre
Dernière intervention
23 avril 2007
-
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
Bon voila g fai un bot mirc et en fai jaimerai lammener en 3 fois car ca va etre un bot dannimanimation ki sera en 3 pseudo ( ki parleron ensemble totu suel lol ).
Pour cela g besoin des thread ( c mieu ke de recopier la fonction 3 fois et dla renomer ) parcke jV metre des options.
La je suis a bout de force lol G chercher partout des truck sur les threads mais g rien compris. si kelkun pouvai maider ca serai super sympa :$

#include <winsock.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int
connexion_tcp ()
{
SOCKADDR_IN SinDist;
struct hostent *host;
int sock;
int port = 6667;
char serv[20];
sprintf(serv,"irc.voila.fr");
long FinNick2;
time(&FinNick2);
int FinNick = FinNick2;
sock = socket (AF_INET, SOCK_STREAM, 0);
if (sock == -1)
{
perror ("socket");
return sock;
}
SinDist.sin_family = AF_INET;
SinDist.sin_addr.s_addr = inet_addr (serv);
SinDist.sin_port = htons (port);


if (SinDist.sin_addr.s_addr == -1)
{
host = gethostbyname (serv);
if (host == NULL)
{
printf ("Résolution de l'host %s impossible", serv);
return -1;
}


memcpy ((char *) &SinDist.sin_addr.s_addr, host->h_addr,
host->h_length);
}


if (connect (sock, (struct sockaddr *) &SinDist, sizeof (SOCKADDR_IN)) < 0)
{
printf ("Connexion à %s impossible", serv);
return -1;
}
char pseudonick[50];
printf ("Connexion à %s établie\n", serv);
sprintf (pseudonick,"NICK PistachO-%d\n", FinNick);
send (sock, pseudonick, strlen (pseudonick), 0);
send (sock, "USER Pistach LoooOoOOL irc.voila.fr : 1[2•12•1]\n", strlen ("USER Pistach LoooOoOOL irc.voila.fr : 1[2•12•1]\n"), 0);
int taille_recu; //declare la variable: Integer
char msg_recu[1025]; //chaine dans laquelle on va mettre l'info recue ($sockread)
char pong[50];
while (1) //Boucle infinie qui recoit les données
{
taille_recu = recv (sock, msg_recu, 1024, 0);
msg_recu[taille_recu] = 0;
if (strncmp (msg_recu, "PING", 4) == 0) { //Si on recoit un PING on balance le PONG
sprintf (pong, "PONG :%s\n", serv);
send (sock, pong, strlen (pong), 0);
}
if (strstr (msg_recu, ":End of /MOTD command.")) { //le msg arrive: je join le chan
send (sock, "JOIN #TesT\n", strlen ("JOIN #TesT\n"), 0);
}
}
return sock;
}

int main(void)
{
WSADATA Data;
WSAStartup (MAKEWORD (2, 2), &Data);
Debut:
connexion_tcp();
goto Debut;
return 0;
}

4 réponses

Messages postés
47
Date d'inscription
vendredi 21 mai 2004
Statut
Membre
Dernière intervention
23 avril 2007

euh g bien telecharger mais jcomprend vraiment rien :/ tu peu me montrer un esemple stp style pour vourir 2 fois ma connecct_tcp en thread pliz
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Pour debuter, il y a quelques sources sur le site qui pourront t'aider, mais ensuite pour bien comprendre, va sur brunews.free.fr et telecharge petzold, et mate le chapitre 20. Si tu ne comprends pas, je pourrai toujours t'aider ;).

+2(p - n)
Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009

Pour faire un thread, tu peux exploiter la lib BOOST::THREAD qui offre une classe 'thread'.

Cordialement,
Xterminhate.
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2