Bonjour, j'aimerais créer un bot irc, mais pour le moment je suis bloqué. Voilà ce que j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#define MAXLEN 1024
#define HOST_IP "127.0.0.1"
#define HOST_PORT 30000
 
int pong( const int sock, const char ping[] );
 
int main( void ){
   WSADATA ws;
   if( WSAStartup(MAKEWORD(2,2), &ws) != 0 ){
      printf("Erreur: WSAStartup( )\n");
      system("PAUSE");
      return 0;
   }
 
   SOCKET sock;
   if( (sock=socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET ){
      printf("Erreur: socket( )\n");
      WSACleanup( );
      system("PAUSE");
      return 0;
   }
 
   SOCKADDR_IN s;
   s.sin_family      = AF_INET;
   s.sin_addr.s_addr = inet_addr(HOST_IP);
   s.sin_port        = htons(HOST_PORT);
   if( connect(sock, (SOCKADDR *)&s, sizeof(s)) == SOCKET_ERROR ){
      printf("Erreur: connect( )\n");
      WSACleanup( );
      system("PAUSE");
      return 0;
   }
 
   char requete[MAXLEN]="PASS azerty\r\nNICK Fi7\r\nUSER fi7 \"fisept.be\" \"127.0.0.1\" :Fi7\r\n";
   if( (send(sock, requete, strlen(requete), 0)) == SOCKET_ERROR ){
      printf("Erreur: send( nick,user )\n");
      closesocket(sock);
      WSACleanup( );
      return 0;
   }
 
   char buffer[MAXLEN]={0};
   if( recv(sock, buffer, sizeof(buffer)-1, 0) == SOCKET_ERROR ){
      printf("Erreur: recv( ping )\n");
      closesocket(sock);
      WSACleanup( );
      system("PAUSE");
      return 0;
   }
 
   if( pong( sock, buffer ) == 0 ){
      printf("Erreur: pong( )\n");
      closesocket(sock);
      WSACleanup( );
      system("PAUSE");
      return 0;
   }
 
   char quit[8]="QUIT :\r\n";
   if( send(sock, quit, strlen(quit), 0) == SOCKET_ERROR ){
      printf("Erreur: quit( )\n");
      closesocket(sock);
      WSACleanup( );
      system("PAUSE");
      return 0;
   }
 
   printf("Ok\n");
   closesocket(sock);
   WSACleanup( );
   system("PAUSE");
   return 0;
}
 
int pong( const int sock, const char ping[] ){
   int n=0, i=6;
   char buffer[16]="PONG :";
   for( i=6; i<=13; ++i )
      buffer[i]=ping[i];
   buffer[i++]='\r', buffer[i++]='\n', buffer[i]='\0';
   if( (n=send(sock, buffer, strlen(buffer), 0)) != SOCKET_ERROR )
      return n;
   else
      return 0;
}

Comment est ce que je dois faire pour exécuter deux taches en même temps ? Par exemple écouter les requêtes du serveur, et envoyer les miennes ?