Skip to content

facetint/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IRC Server 📌

irc

Table of Contents

  1. Overview
  2. Features
  3. Installation
  4. Usage
  5. Supported Commands

Overview 💻

ircserv is an IRC server developed in C++98. It supports non-blocking I/O with the use of poll() (or equivalent) for efficient event handling. The server allows multiple client connections and implements essential IRC functionalities like authentication, nickname management, channel operations, private messaging, and operator commands.


Features ✨

  • Non-blocking I/O: The server uses poll() (or equivalent) to avoid blocking operations and handle multiple connections simultaneously.
  • IRC Protocol Support: Implements core IRC commands such as joining channels, setting nicknames, sending private messages, and more.
  • Channel Management: Operators can control channels with commands like KICK, INVITE, TOPIC, and MODE.
  • TCP/IP Communication: Full support for TCP/IP (IPv4 and IPv6) communication between clients and server.

Installation 🔧

Clone the Repository

git clone https://github.com/facetint/ft_irc.git

Build the Project

Navigate to the project directory and compile:

cd ircserv
make

Usage 🚀

Start the Server

Run the server with the required arguments:

./ircserv <port> <password>

: The port on which the server will listen for incoming connections. : The password required for client authentication.

Example:

./ircserv 6667 mypassword

Test with nc (Netcat)

You can test the server's behavior with nc:

nc -C 127.0.0.1 6667

Supported Commands 💡

Basic Commands ♦️

Command Description
NICK Set a client's nickname. 🏷️
USER Set a client's username. 🧑‍💻
JOIN Join a channel. 📲
PRIVMSG Send private messages to users or channels. ✉️

Operator Commands ♦️

Command Description
TOPIC Set or view the channel topic. 📝
MODE Modify the channel’s mode (e.g., i, t, k, o, l). 🔧
KICK Eject a client from the channel. 🚪
INVITE Invite a client to join a channel. 🎉

About

This project is about creating your own IRC server.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •