GithubHelp home page GithubHelp logo

ircserv's Introduction

ircserv

This project is about creating our own IRC server in C++.
Clients can register on the server and chat with each other.

Commands

  • ircserv
// Make and launch server with parameters

make && ./ircserv <port> <password>
Ex.: make && ./ircserv 6667 pass
  • Clients
// To use nc as a client
nc -C <servername> <port>
PASS <password>
NICK <nickname>
USER <username> <hostname> <servername> <realname>

Ex.:
nc -C localhost 6667
PASS pass
NICK myNick
User a b c d

// To use Irssi (our reference client)
irssi -p <port> -c <servername> -n <nickname> -w <password>
Ex.: irssi -p 6667 -c localhost -n myNick -w pass

// To connect from another computer at 42 school
irssi -p <port> -c <computer name> -n <nickname> -w <password>
Ex.: irssi -p 6667 -c e1r2p5 -n myNick -w pass

// Some useful Irssi commands
/reconnect => reconnect to server
/clear => clear tab
CTRL + N => toggle between tabs
  • To set up and use DCC to transfer files between clients with Irssi
/* RECIPIENT CONFIGURATION */

// 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>
Ex.: /set dcc_download_path /mnt/nfs/homes/daisvke/Documents/ircserv/

// Allow file creation when copying the received file
/set dcc_file_create_mode 644

/* SENDER */

// Send file to the destination
/dcc send <recipient nick> <path to the file>
Ex.: /dcc send luc /mnt/nfs/homes/luc/Documents/file_to_send
  • Handled commands:
PASS
NICK
USER
WHOIS
WHO
OPER
QUIT
JOIN
PART
MODE
TOPIC
NAMES
LIST
INVITE
KICK
KILL
PING
PONG
  • Handled modes:
// User modes
o

// Channel modes
timnslk

// Channel param modes
lk

Screenshots

Play from Lady Windermere's Fan, by Oscar Wilde.

Links

https://modern.ircdocs.horse/
http://chi.cs.uchicago.edu/chirc/irc_examples.html

ircserv's People

Contributors

daisvke avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.