This project involves creating a custom IRC (Internet Relay Chat) server in C++. The server allows clients to register, connect, and chat with each other, adhering to the IRC protocol.
Compile and launch the server with the following command:
make && ./ircserv <port> <password>
# Example:
make && ./ircserv 6667 passConnect to the server using the nc utility:
nc -C <servername> <port>
PASS <password>
NICK <nickname>
USER <username> <hostname> <servername> <realname>
# Example:
nc -C localhost 6667
PASS pass
NICK myNick
USER user host server RealNameConnect using the irssi client:
irssi -p <port> -c <servername> -n <nickname> -w <password>
# Example:
irssi -p 6667 -c localhost -n myNick -w passirssi -p <port> -c <computer_name> -n <nickname> -w <password>
# Example:
irssi -p 6667 -c e1r2p5 -n myNick -w pass/reconnect: Reconnect to the server./clear: Clear the current tab.CTRL + N: Toggle between tabs.
- Accept low ports:
/set dcc_autoaccept_lowports ON
- Automatically accept and download received files:
/set dcc_autoget ON
- Set download path:
/set dcc_download_path <path> # Example: /set dcc_download_path /mnt/nfs/homes/daisvke/Documents/ircserv/
- Allow file creation during downloads:
/set dcc_file_create_mode 644
Send a file to a recipient:
/dcc send <recipient_nick> <file_path>
# Example:
/dcc send luc /mnt/nfs/homes/luc/Documents/file_to_sendThe server supports the following IRC commands:
PASS NICK USER WHOIS WHO
OPER QUIT JOIN PART MODE
TOPIC NAMES LIST INVITE KICK
KILL PING PONG
| Mode | Description |
|---|---|
o |
Operator mode |
| Mode | Description |
|---|---|
t |
Topic protection |
i |
Invite-only channel |
m |
Moderated channel |
n |
No external messages |
s |
Secret channel |
l |
User limit |
k |
Channel key (password) |
| Mode | Description |
|---|---|
l |
Limit the number of users |
k |
Set a password for the channel |
A scene from Lady Windermere's Fan, by Oscar Wilde.
- Modern IRC Documentation:
https://modern.ircdocs.horse/ - IRC Protocol Examples:
http://chi.cs.uchicago.edu/chirc/irc_examples.html