irc bot problem



  • Hasllo,

    Wie der titel schon sagt, will ich mit cpp einen irc bot programmieren:
    Einen Fehler habe ich hier:

    void authentificate ()
    {
    string atmp = "";
    char buf [8000];
    	int sock = client (remote_ip, 6667);
    
    	if (sock == -1)
    	{
    		cout << "error" << endl;
    		exit(1);
    	}
    
    	sendc (sock, auth_user+nl);
    	sendc (sock, auth_pass+nl);
    	sendc (sock, channel+nl);
    	sendc (sock, priv+welcome+nl);	
    
    	for (;;)
    	{
    		sendc (sock, priv+"hy\r\n");
    		recv (sock, buf, 5000, 0);
    		cout << "t: " << buf << endl <<endl;
    		printf("%s\n", buf);
    	}
    }
    

    Der Bot loggt sich schön ein. ER sendet die willkommensnachricht.
    Sobald ein anderer User einen Text in den IRC schreibt, so schreibt der bot "hy". Jedoch liest der bot irgendwie einfach nichts aus.

    ich ahbe die ausgabe von buf mti cout und printf versucht auszugeben => da kommt nichts! das ist aber nicht möglich, da andere user (auch ich) definitiv was im channel schreiben!!!

    könnt ihr mir weiterhelfen?

    danke!



  • Hatte da so ne Idee.

    Vl sendet der irc server kein \0 hinter dem string udn recv() liest daher ins unendliche.

    Habe das getestet mit:

    recv (sock, buf, 5, 0);
    

    Und einfach einen Text getippt, welcher länger als 5 Zeichen ist.
    Nun wird diesr angezeigt.

    Problem gefunden, aber wie kann ich das beheben???


Anmelden zum Antworten