[C] [SCOKET] IRC BOT



  • hallo

    ich versuche mich a C socket programmierung und wollte mal aus spass an der freund nen irc bot proggen. der soll erstmal NIX koennen ausser einen channel zu joinen

    dazu las ich etwas IRC staff, vorallem das IRC RFC. dann suchte ich nen bot source um zu gucken wie man das praktisch angeht. ich fand aber nur richtig dicke irc bot, die viel zu riesig fuer meine zwecke waren

    daher hab ich einfach einen versuch gestartet, wohl wissend das es falsch ist. könnt ihr mir sagen wie sowas denn geht, bzw wie man das angeht? anbei der code den ich mal gemacht hab um zu gucken ob die "fast&dirty" methode was bringt ( merkelt also net am code rum, ich weiss das er grotten schlecht ist ) - es geht einfach ums prinzip wie man die sache angeht.

    danke! mfg

    /* SERVER IS stockholm.se.quakenet.org */
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <signal.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    
    int main()
    {
            struct sockaddr_in addr;
            int sockfd;
            int g;
    
            if ( ( sockfd = socket(AF_INET, SOCK_STREAM, 0) ) == NULL )
                    perror("Socket error");
    
            bzero(&addr,sizeof(addr));
    
            addr.sin_family = AF_INET;
            addr.sin_port   = htons(6667);
            inet_pton(AF_INET, "195.54.159.109", &addr.sin_addr);
    
            if ( (connect(sockfd, (struct sockaddr * ) &addr, sizeof (addr)) ) != NULL )
                    perror("connect error");
    
            puts("Connect was fine :)");
    
            g = write(sockfd,"PASS sohn21", sizeof("PASS sohn21"));
            printf("\nwrite state: %d\n", g); fflush(stdout);
    
            g = write(sockfd,"NICK sohn_21", sizeof("NICK sohn_21"));
            printf("\nwrite state: %d\n", g); fflush(stdout);
    
            g = write(sockfd,"USER sohn_21 wixhost 195.54.159.109 :Peter Pan", sizeof("USER sohn_21 wixhost 195.54.159.109 :Peter Pan"));
            printf("\nwrite state: %d\n", g); fflush(stdout);
    
            g = write(sockfd,"JOIN #blabla1", sizeof("JOIN #blabla1"));
            printf("\nwrite state: %d\n", g); fflush(stdout);
    
            close(sockfd);
    
            return 0;
    }
    

Anmelden zum Antworten