/Chat-On

A Secured TCP Chat Room built with Python.

Primary LanguagePythonMIT LicenseMIT

Chat-On 🐍 : A Python-Based Chat Room

This is an advanced Python-based Secure Chat room. The project is entirely based on the Socket Progamming; done using Python. A server is set to the listening mode, with a specific IP Address and Port number (that can be edited in the script) and clients are made to connect to the server, after which they are promopted to enter a nickname. The messages are then broadcasted to all the clients present.

πŸ‘‰ Introduction

πŸ‘‰ Sockets

Sockets and the socket API are used to send messages across a network. They provide a form of inter-process communication (IPC). The network can be a logical, local network to the computer, or one that’s physically connected to an external network, with its own connections to other networks. The obvious example is the Internet, which you connect to via your ISP.


Image Credit:Real Python

πŸ‘‰ TCP Socket

In the diagram below, given the sequence of socket API calls and data flow for TCP:

πŸ‘‰ Usage

  1. We will have to start our Server first.
Python Server.py

Note: Before running the server, make sure to edit the IP address and Port number. By default it is running on Localhost:5555

2. Run the Client file, to start the conversation.

Python Client.py

3. Now Enter a nickname and start your chatting.

v1.2 Updates

  • The version 1.2 supports the Admin Controls. The admin has certain controls over the chat room.
  • The enhanced features include
    • Kick Feature : Admin can kick anyone from the Chat Room.
    • Ban Feature : Admin can ban certain members from re-joining the Chat Room. These names are added in a List.
  • Minor Bug Fixes.

Demo-Video πŸ“Ή


This is a demo video of the Working of this project.


Contribution

πŸ‘‰ You're welcome to contribute in this project. Make a new branch, Commit your changes and send me a Pull Request. I'll merge it in the main branch ✌

EduardoJTR : Added Menu System

Contact

πŸ“¬ Contact with me via email: sanmol016@gmail.com