IRC Bot macht Probleme (Winsock)



  • Hallo,
    also ich habe ja mal angefangen mit mit WInsock zu beschäftigen und da kann man ja sogar einen IRC BOt basteln das musste ich natürlich gleich ausprobieren ein Freund von mir hat das auch gemacht ich habe ihn dann halt ein bisschen ausgefragt und bin bis hier gekommen gut mein Problem ist nun ich bin mit dem IRC Netzwerk verbunden aber ich muss nun nurnoch in einen Channel kommen das soll so gehen das mann dem Server nachrichten schikt er sagte erwas von nick bla, pass ...
    Ich war dann ein bisschen verwirrt und hab das einfach probiert und versucht nick bla zu senden hat geklappt 8 Bytes Gesendet! aber keine rückantwort das ist nun mein Problem.
    Ok hier ist der Code der ist ein bisschen komisch denn, ich hab denn jetzt so oft umgeschrieben :

    #include <windows.h>
    
    #include <winsock.h>
    
    #include <stdio.h>
    
    int startWinsock(void);
    
    int main(int argc, char* argv[])
    
    {
    
    long rc;
    
    SOCKET s;
    
    bool mainloop=true;
    
    SOCKADDR_IN addr;
    
    char buf[1024];
    
    rc=startWinsock();
    
    if(rc!=0)
    
    {
    
    printf("Fehler: startWinsock, fehler code: %d\n",rc);
    
    return 1;
    
    }
    
    else
    
    {
    
    printf("Winsock gestartet!\n");
    
    }
    
    s=socket(AF_INET,SOCK_STREAM,0);
    
    if(s==INVALID_SOCKET)
    
    {
    
    printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
    
    return 1;
    
    }
    
    else
    
    {
    
    printf("Socket erstellt!\n");
    
    }
    
    memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 
    
    addr.sin_family=AF_INET;
    
    addr.sin_port=htons(6667); // wir verwenden mal port 6667
    
    addr.sin_addr.s_addr=inet_addr("195.185.217.28"); // Mit IRC NEtzwerk verbinden :)
    
    rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
    
    if(rc==SOCKET_ERROR)
    
    {
    
    printf("Fehler: verbindungsaufbau gescheitert, fehler code: %d\n",WSAGetLastError());
    
    return 1;
    
    }
    
    else
    
    {
    
    printf("Verbunden...\nAnfragen werden beantwortet bzw. gesendet...\n");
    
    while(rc != SOCKET_ERROR && mainloop)
    {
    
    printf("Text eingeben: "); 
    gets(buf); 
    
    rc=send (s,buf,strlen(buf),0); 
    
    if(rc==SOCKET_ERROR) 
    
    { 
    
    printf("Fehler: sendto, fehler code: %d\n",WSAGetLastError()); 
    
    return 1; 
    
    } 
    
    else 
    
    { 
    
    printf("%d Bytes gesendet!\n", rc); 
    
    } 
    
    // rc=recv(s,buf,255,0); ???
    
    }
    
    }
    
    if (mainloop==false) {
    return 0;
    }
    
    }
    
    int startWinsock(void)
    
    {
    
    WSADATA wsa;
    
    return WSAStartup(MAKEWORD(2,0),&wsa);
    
    }
    

    Also schonmal Danke ich hoffe ihr könnt helfen das ganze ist größtenteils Marke eigenbau wie man sieht o_O !

    Gruß

    PS : Bin neu hier hoffe das , dass hier richtig ist ! 😃



  • Dummie schrieb:

    Bin neu hier

    Na dann lern erstmal die Suchfuntion kennen 😉
    Mit einer schlichten Suche nach "IRC" hättest du auch das gefunden: http://forum.c-plusplus.net/viewtopic.php?t=71081&highlight=irc (ich denk mal dass es dein Problem löst)



  • Danke
    Ich bin nun schon weiter und zwar kommt nun ein neues Problem das Netzwerk Spuckt einen Ping aus auf den man nun mit pong antworten muss ei Beispiel :

    Server antwortet: NOTICE ChatBot :*** If you are having problems connecting due to ping timeouts, please type /notice 992AB081 nospoof.now PING :992AB081

    Dort steht nun PING :992AB081 das was hinter dem Ping steht muss ich in eine neue variabel speichern und mit pong 992AB081 wieder zurückschicken.
    Und genau da liegt mein Problem vielleicht hat jemand da für mich noch einen Lösungsansatz. 🙄

    Gruß 🙂



  • Habs alleine hinbekommen zawr sende ich das Pong aber trotzdem fliege ich nach ein paar sekunden wieder raus 😞

    Gruß



  • Ich hab nun viel probiert... 😡 Bringt alles nicht ich wollte mal fragen ob jemand einen Bot hat der noch nicht so komplex ist und ganz einfach nur einen Channel joint und da bleibt 🙄 ?

    C oder C++ ist egal 😃

    Ich bekommst einfach nicht hin ! 😞
    Ich hoffe ihr könnt mir helfen 🙂

    Gruß



  • Ok Jungs ich habs nun gescahfft mein Bot funktioniert er kann in einen Channel aber nicht beim euirc.net da gehts nicht da kommt ein Timeout jemand hat mir nun gesagt ich muss einen Ident Server basteln aber wie ist sowas aufgebaut ?
    Da bräuchte ich eure Hilfe

    Gruß
    Danke


Anmelden zum Antworten