A fully functional IRC server built in C++, compatible with real IRC clients. The project required implementing the IRC protocol from scratch, handling multiple simultaneous clients over TCP using non-blocking I/O.
What it does
- TCP server handling multiple clients simultaneously without blocking
- Full IRC command support:
NICK,USER,JOIN,PART,PRIVMSG,KICK,INVITE,TOPIC,MODE - Channel management with operator privileges
- Channel modes: invite-only, topic lock, password, user limit
- Authentication with server password
- Compatible with standard IRC clients such as irssi
Tech Stack
- C++98 — strict standard, no external libraries
- POSIX sockets — socket, bind, listen, accept, recv, send
- poll() for non-blocking I/O multiplexing across all clients