Bot irc basique

Description

Bonjour tout le monde,
Voilà je débute en langage C, je sais que commencer par les sockets c'est pas l'idéale.
Ce bot IRC se connecte uniquement sur le réseau Voilà/Wanadoo (je ne sais pas trop pkoi ...).

Pour que ce code fonctionne il suffit d'ajouter un lien vers la librairie winsock (-lwsock32), pour les débutant (plus que moi), utilisez dev-c++ 4.9.9.2, allez dans "option du compilateur", cochez "ajouter ces commandes lors de l'appel a l'éditeur de liens" puis mettez dans la zone de texte : -lwsock32 .
Aussi pour réaliser ce code je me suis aidé d'un tutorial sur les socket et j'ai modifié l'exemple de client à la fin : http://c.developpez.com/WalrusSock .

Si quelqu'un pourrait me dire pkoi ce bot se connecte uniquement à voilà/wanadoo ca serait cool. Je crois qu'il s'agit d'un problème d'ident, pourtant je pense utiliser la bonne syntaxe, bref merci de votre aide :).

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <windows.h>
int main(void)
{   
 char user[] = "USER DiCoToRuS free.fr chat9.x-echo.com :DiCoToRuS\r\n";
 char nick[] = "NICK DiCoToRuS\r\n";
 char join[] = "JOIN #testtt\r\n";
 char privmsg[] = "PRIVMSG #testtt :Hello world\r\n";
  
 WSADATA WSAData;
 WSAStartup(MAKEWORD(2,0), &WSAData);
 SOCKET sock;
 SOCKADDR_IN sin;

 char buffer[1000];
  sock = socket(AF_INET, SOCK_STREAM, 0);
  sin.sin_addr.s_addr			= inet_addr("195.101.94.173");
  sin.sin_family				= AF_INET;
  sin.sin_port				= htons(6667);
   
  connect(sock, (SOCKADDR *)&sin, sizeof(sin));
  
  send(sock,user, strlen(user), 0);
  printf ("%s\n",user);
  send(sock,nick,  strlen(nick), 0);
  printf ("%s\n",nick);
  
 int a;
 char *p, tokit[30];
 char *j;
 char poulet[30];

while (1) {
      recv(sock, buffer, sizeof(buffer), 0);
      p = strstr (buffer, "PING");
      if (p)
      { 
            for (p += 6, a = 0; *p && *p != '\n'; p++, a++) 
                  tokit[a] = *p; 
            tokit[a] = 0;
            printf ("tokit: %s\n", tokit);
            sprintf (poulet, "PONG: %s\n", tokit);
            send (sock, poulet, strlen (poulet), 0);
            printf ("%s\n",poulet);
      }
      printf ("%s\n",buffer);
      j = strstr (buffer, "End of /MOTD command.");
      if (j) {
            send(sock,join, strlen(join), 0);
            printf ("%s\n",join);
            send (sock,privmsg, strlen(privmsg), 0);
            printf ("%s\n",privmsg);
            int len = recv(sock,buffer,sizeof(buffer)-1,0);
            buffer[len]=0;
      }
}

// send(sock, "quit\r\n",  strlen(quit), 0);
 closesocket(sock);
 
 WSACleanup();
 
    system("pause");
    return 0;
}

Conclusion :


Si quelqu'un pourrait me dire pkoi ce bot se connecte uniquement à voilà/wanadoo ca serait cool. Je crois qu'il s'agit d'un problème d'ident, pourtant je pense utiliser la bonne syntaxe, bref merci de votre aide :).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.