This project implements a core IRC server designed for C++98 compatibility. It utilizes poll()
for efficient, non-blocking input/output management, enabling the server to handle multiple clients simultaneously.
- User authentication with connection passwords
- Channel creation and management
- Private messaging
- Operator privileges and commands:
- KICK
- INVITE
- TOPIC
- MODE
- Compilation:
make
- Execution:
./ircserv <port> <server_password>
Connect to the server using your preferred IRC client (LimeChat or HexChat for example). Remember to use specified port and password.
- Non-blocking I/O using
poll()
- Compatibility with any IRC client
The server's architecture centers around a main loop that leverages poll()
to monitor file descriptors for client connections, incoming data, and outgoing messages. This ensures efficient and scalable handling of multiple clients.