Internet Relay Chat
Internet Relay Chat or IRC is a text-based communication protocol on the Internet. It offers real-time messaging that can be either public or private. Users can exchange direct messages and join group channels. IRC clients connect to IRC servers in order to join channels. IRC servers are connected together to form a network.
- The code should comply with the C++ 98 standard>
- Compile the code with c++ and the flags -Wall -Wextra -Werror
The executable will be run as follows:
./ircserv <port> <password>
- port: The port number on which your IRC server will be listening to for incoming IRC connections.
- password: The connection password. It will be needed by any IRC client that tries to connect to your server.
Using your reference client with your server must be similar to using it with any official IRC server. However, you only have to implement the following features:
- You must be able to authenticate, set a nickname, a username, join a channel, send and receive private messages using your reference client.
- All the messages sent from one client to a channel have to be forwarded to every other client that joined the channel.
- You must have operators and regular users.
- Then, you have to implement the commands that are specific to channel operators:
∗ 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: Set/remove Invite-only channel · t: Set/remove the restrictions of the TOPIC command to channel operators · k: Set/remove the channel key (password) · o: Give/take channel operator privilege