Skip to content

The "ft_irc" project entails developing a C++ IRC server, named "ircserv." It handles multiple clients concurrently with non-blocking I/O. The server, executed with port and password parameters, communicates via TCP/IP.

License

Notifications You must be signed in to change notification settings

joao-per/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 FT_IRC 🌐

Bridging the Bytes for Seamless Conversations 🌉

FT_IRC

🧠 About the project

A basic implementation of an IRC server that handles authentication, user registration, bot, file transfer and several chat commands. 🖥️

🌟 Features

🔒 Authentication: Authenticate users with a password.

🖋️ Registration: Register users by setting their nickname (NICK) and real name (USER).

📜 Command Handling: Process various commands like JOIN, BAN, TOPIC and PRIVMSG.

🧑‍🤝‍🧑 Multi-Client Handling: Uses poll() system call to handle multiple clients simultaneously.

🤖 Bot: Detects if a user sends messages with bad words in it.

🗂️ File Transfer: It's possible to send files through clients.

🚀 Getting Started

🛠️ Prerequisites

A C++ compiler with support for C++11 or newer. Basic knowledge of IRC protocols (optional).

📖 Compilation

You can compile the project using:

make

And then run the server:

./ircserv <port> <password>

For example:

./ircserv 6667 12345

🙏 Acknowledgments

A huge thank you to my colleagues gacorrei and abaiao-r for their invaluable contributions and insights. This project wouldn't be the same without their assistance. 🙌

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

The "ft_irc" project entails developing a C++ IRC server, named "ircserv." It handles multiple clients concurrently with non-blocking I/O. The server, executed with port and password parameters, communicates via TCP/IP.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •