simpler Konsolen IRC-Client, nicht alle nachrichten werden gesendet



  • Hallo,

    wollte mir nen kleinen konsolen basierten irc chat clienten programmieren,
    habe da aber ein paar schwierigkeiten:

    ich erstelle den socket, verbinde auch erfolgreich mit dem IRC server,
    sende ihm auch USER x x x x x und NICK x und ein Pong zurueck.

    wenn ich nun anschliessend befehle eingebe wie z.b.
    PRIVMSG #channel :Hallo

    kommt das Hallo nur jedes 4.-5. mal an, woran liegt das ? hier der relevante code:

    while (true)
        {
            //leere read_fds
            FD_ZERO(&read_fds);
    
            //setze flags fuer read_fds
            FD_SET(STDIN_FILENO,&read_fds);
            FD_SET(sock,&read_fds);
    
            //ueberprueft wo was anliegt
            err = select(max_socket+1, &read_fds, NULL, NULL, NULL);
            if (FD_ISSET(STDIN_FILENO, &read_fds))
            {
                //leere message
                bzero(message,MSGLEN);
                //lese nachricht von stdin
                err = read(STDIN_FILENO,message,MSGLEN);
                err = write(sock,message,MSGLEN);
            }
            if (FD_ISSET(sock, &read_fds))
            {
                //puffer wieder leeren
                bzero(message,MSGLEN);
                //empfange Nachricht
                err = read(sock,message,MSGLEN);
                printf("%s",message);
            }
        }
    

    habe mal die ganzen fehlerabfragen zur uebersichtlichkeit rausgelassen. wo liegt mein fehler ?

    MSGLEN = 510
    max_socket ermittle ich vor der whileschleife.

    mfg
    KungFuZius


Anmelden zum Antworten