K
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