/IRC-Server

This IRC server features private, group chat and file transfert

Primary LanguageC++MIT LicenseMIT

IRC

Our Internet Relay Chat (IRC) server works prefectly with clients such as LimeChat (User friendly graphical interface) or nc command. The server features :

  • private messages (1 to 1)
  • channels (group chat) / operators / priviligies
  • file transfert

This server supports the following commands :

  • SENDFILE
  • GETFILE
  • NICK
  • PASS_USER
  • PRVMSG
  • PONG
  • IRCBOT
  • DATE
  • JOKE
  • WHOAMI
  • JOIN
  • MODE
  • KICK
  • TOPIC
  • INVITE
  • QUIT
  • PART

The main source for implementing these commands is Modern IRC Client Protocol

Usage

# Compile files
$> make

# run the server
$> ./ircserv <serverip> <port> <pass>

# example
$> ./ircserv localhost 9999 0000
# Compile file
$> make build=bot

# run the bot
$> ./a.out <serverip> <port> <pass>

# example
$> ./a.out localhost 9999 0000
# connect a client using nc command
$> nc -c <serverip> <port> <pass>
PASS <password>
NICK <nickname>
USER <username> 0 * <realname>

# example
$> nc -c localhost 9999 0000
PASS 0000
NICK Tommy
USER Homy 0 * lony
# Cleanning
$> make clean
$> make flclean
$> make fcleanbot
$> make clean

# Clean and recompile
$> make re

Sources :

what is socket programming ?

Command Reference

Modern IRC Client Protocol

Internet Relay Chat Protocol 1459

Internet Relay Chat: Client Protocol 2812

RFC 1459 | Message format in 'pseudo' BNF

IRC Modes

Other Sources :

The Pitchfork Layout a convention for laying out source, build, and resource files in a filesystem to aide in uniformity, tooling, understandability, and compartmentalization.