Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ft_irc

Grade


🇫🇷 FRENCH VERSION

Ceci est un projet de l'école 42 (réalisé en février 2025).

Preamble

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.

Compétences:

  • Programmation réseau bas niveau avec sockets TCP
  • Communication non-bloquante avec poll()
  • 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ème repose sur des classes distinctes : Client, Server, Channel

Installation

git clone https://github.com/N0fish/ft_irc.git
cd ft_irc

Lancement

make
./ircserv <port> <password>
Ex: ./ircserv 6667 1234

error checking

valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./ircserv 6667 1234

another terminal

nc 127.0.0.1 6667

irssi linux

/connect localhost 6667 1234

🇬🇧 ENGLISH VERSION

This is a project from 42 School (completed in february 2025).

Preamble

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.

Skills:

  • Low-level network programming using TCP sockets
  • Non-blocking I/O with poll()
  • User and channel management
  • Implementation of IRC commands (an individual classes): NICK, USER, JOIN, PRIVMSG, KICK, INVITE, TOPIC, MODE, etc.
  • The system architecture is built around separate classes: Client, Server, Channel

Installation

git clone https://github.com/N0fish/ft_irc.git
cd ft_irc

Launch

make
./ircserv <port> <password>
Ex: ./ircserv 6667 1234

error checking

valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./ircserv 6667 1234

another terminal

nc 127.0.0.1 6667

irssi linux

/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_irc

Запуск

make
./ircserv <port> <password>
Ex: ./ircserv 6667 1234

error checking

valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all ./ircserv 6667 1234

another terminal

nc 127.0.0.1 6667

irssi linux

/connect localhost 6667 1234


About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages