Skip to content

A C++98 IRC server implementation following RFC standards. Features client authentication, channel management, and operator commands. Built with non-blocking I/O operations using poll().

Notifications You must be signed in to change notification settings

SirAlabar/Internet_Relay_Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 

Repository files navigation

🌐 ft_irc - Internet Relay Chat Server 🌐

πŸ“ About the Project

This project involves implementing an IRC (Internet Relay Chat) server in C++98, enabling real-time communication between multiple clients. The server supports authentication, channel creation, private messaging, and operator commands.

πŸš€ Features

  • βœ… User authentication (nickname, username)
  • βœ… Channel creation and management
  • βœ… Private messaging between users
  • βœ… Operator commands:
    • πŸ‘’ KICK - Eject a client from the channel
    • πŸ“¨ INVITE - Invite a client to a channel
    • πŸ“Œ TOPIC - Change or view the channel topic
    • πŸ”§ MODE - Change the channel's mode:
      • i: Invite-only channel
      • t: Restrict TOPIC to operators
      • k: Channel password
      • o: Operator privilege
      • l: User limit to channel

πŸ› οΈ Technologies Used

  • C++98
  • TCP/IP Sockets
  • Poll (for non-blocking I/O operations)
  • Makefile

πŸ—οΈ Build and Execution

# Compile the project
make

# Run the server
./ircserv <port> <password>

πŸ“‹ Requirements

  • Multiple simultaneous clients
  • All non-blocking I/O operations
  • Communication via TCP/IP (v4 or v6)
  • Compatibility with standard IRC clients

πŸ‘¨β€πŸ’» Team

SirAlabar
SirAlabar
MrSloth-dev
MrSloth-dev
isilva-t
isilva-t

πŸ“š References

  • RFC 1459 - Internet Relay Chat Protocol
  • RFC 2812 - Internet Relay Chat: Client Protocol

πŸ“Š Project Progress

  • Initial project setup
  • Basic server implementation
  • Client connection management
  • User authentication
  • Channel implementation
  • Basic IRC commands
  • Operator commands
  • Testing and debugging

This project was developed as part of the 42 curriculum.

πŸ’» Happy coding! πŸ’»

About

A C++98 IRC server implementation following RFC standards. Features client authentication, channel management, and operator commands. Built with non-blocking I/O operations using poll().

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published