| Grade | |
|---|---|
🇫🇷 FRENCH VERSION
Ceci est un projet de l'école 42 (réalisé en février 2025).
L’objectif du projet est de coder un serveur IRC (Internet Relay Chat) conforme au protocole RFC 2812.
Le serveur est codé en C++98 et permet à plusieurs clients de se connecter, d’échanger des messages privés ou en groupe, de rejoindre des canaux et d’utiliser des commandes IRC courantes.
- Programmation réseau bas niveau avec
sockets TCP - Communication
non-bloquanteavecpoll() - Gestion des utilisateurs et des canaux IRC
- Implémentation des commandes IRC (de classes séparée) :
NICK,USER,JOIN,PRIVMSG,KICK,INVITE,TOPIC,MODE, etc. - L’
architecture du systèmerepose sur desclasses distinctes: Client, Server, Channel
git clone https://github.com/N0fish/ft_irc.git
cd ft_ircmake
./ircserv <port> <password>
Ex: ./ircserv 6667 1234valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./ircserv 6667 1234nc 127.0.0.1 6667/connect localhost 6667 1234🇬🇧 ENGLISH VERSION
This is a project from 42 School (completed in february 2025).
The goal of this project is to implement an IRC (Internet Relay Chat) server based on the RFC 2812 protocol. The server is written in C++98 and supports multiple clients connecting, sending private or group messages, joining channels, and using standard IRC commands.
- Low-level network programming using
TCP sockets Non-blockingI/O withpoll()- User and channel management
- Implementation of IRC commands (an individual classes): NICK, USER, JOIN, PRIVMSG, KICK, INVITE, TOPIC, MODE, etc.
- The
system architectureis built aroundseparate classes: Client, Server, Channel
git clone https://github.com/N0fish/ft_irc.git
cd ft_ircmake
./ircserv <port> <password>
Ex: ./ircserv 6667 1234valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./ircserv 6667 1234nc 127.0.0.1 6667/connect localhost 6667 1234🇷🇺 RUSSIAN VERSION
Это проект из школы 42 (выполнен в феврале 2025 года).
Цель проекта — реализовать IRC (Internet Relay Chat) сервер в соответствии со стандартом RFC 2812. Сервер написан на C++98 и позволяет нескольким клиентам подключаться, отправлять личные и групповые сообщения, подключаться к каналам и использовать стандартные команды IRC.
- Низкоуровневое сетевое программирование с использованием
TCP-сокетов Неблокирующийввод-вывод с использованиемpoll()- Управление пользователями и каналами
- Реализация IRC-команд (как отдельные классы): NICK, USER, JOIN, PRIVMSG, KICK, INVITE, TOPIC, MODE и др.
Архитектура системыпостроена наотдельных классах: Client, Server, Channel
git clone https://github.com/N0fish/ft_irc.git
cd ft_ircmake
./ircserv <port> <password>
Ex: ./ircserv 6667 1234valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./ircserv 6667 1234nc 127.0.0.1 6667/connect localhost 6667 1234