Chat Python

A concurrent multi-user chat room system using socket programming

Project Description

This project implements a robust client-server chat system in Python. It enables multiple clients to connect to a central server and exchange messages in real-time within a shared chat room environment.

Core Functionality

  • Concurrent client handling via threading
  • Real-time message broadcasting
  • Dynamic nickname assignment and management
  • Graphical User Interface for clients

Server Architecture

The server acts as the central hub, managing socket connections and message distribution.

  • Listens for incoming TCP connections
  • Spawns a new thread for each connected client
  • Broadcasts messages from one client to all others
  • Maintains a registry of active users

Client Application

The client provides an intuitive interface for users to interact with the chat room.

  • Threaded message reception (non-blocking UI)
  • Tkinter-based GUI for message display and input
  • Automatic connection handling and protocol management

Technologies Used

Language: Python 3.
Networking: socket library for TCP communication.
Concurrency: threading for parallel request handling.
GUI: tkinter for the client interface.

Link repo: GitHub