42 Urduliz — Common Core project
A fully functional IRC server built from scratch in C++, following the RFC 1459 protocol standard. Compatible with real IRC clients (irssi, HexChat, WeeChat).
- TCP/IP server using non-blocking sockets and
poll()for concurrent connections - Full IRC protocol support:
NICK,USER,JOIN,PART,PRIVMSG,KICK,INVITE,TOPIC,MODE - Channel management: multiple channels, operator and regular user roles
- Server password authentication
- Graceful disconnection and robust error handling
make
./ircserv <port> <password>Connect with any IRC client:
/connect localhost <port> <password>
ft_irc/
├── Server/ # Core server: socket setup, client accept loop
├── Client/ # Client state, message buffering
├── Channel/ # Channel logic, user roles
├── Commands/ # One file per IRC command handler
├── Poll/ # poll() event loop manager
├── main.cpp
├── colors.hpp # Terminal color codes
└── Makefile
| I/O model | Non-blocking sockets + poll() |
| Protocol | RFC 1459 compliant parsing |
| Architecture | Single-threaded event loop |
| Memory | Verified leak-free with Valgrind |
| Standard | C++98 |
C++ TCP Sockets Network Programming Concurrency RFC Protocol Linux Makefile
This repository is shared for educational and portfolio purposes only.
For 42 students:
- Do not copy this code for your own project submissions
- Use it as a reference to understand concepts and approaches
- Write your own original solution — that is the only way to actually learn
42's core values are learning through practice, peer collaboration, and genuine problem-solving.
MIT — see LICENSE for details. Copyright (c) 2026 Eneko Muñoz Bordona