Skip to content

Python Multi-User Chat Application Secure Chat Server & Client — Cross-Network Communication

Notifications You must be signed in to change notification settings

DanielVihorev/Socket-Pulse

Repository files navigation

🐍 Python Multi-User Chat Application

Secure Chat Server & Client — Cross-Network Communication

image

© All rights reserved to Daniel Vihorev & Ilay Zendani (Wild Life Cyber Security)

📌 Project Overview

This project is a lightweight, scalable Python-based chat system built using sockets and the select module. It enables multiple users to communicate in real-time, even if they are not on the same local network. The server handles multiple concurrent client connections, and each client must authenticate with a username and password upon connection.

Ideal for learning about: • Socket programming • Multi-threading • Authentication flow • Client-server architecture

🚀 Features • 🔐 Login system: Requires username and password at connection • 🌐 Cross-network support: Clients can connect from different networks • 📡 Multi-user chat: Server handles multiple concurrent clients • ⚙️ Non-blocking I/O with select for efficient message handling • 🖥️ Terminal-based interface for simplicity and transparency

📁 Project Structure

chat-app/ ├── server.py # The main server logic ├── client.py # Client-side application └── README.md # Project documentation

⚙️ How It Works

Server • Listens for incoming client connections. • On connection, prompts the client to enter username and password. • Authenticates clients and manages message broadcasting using select.

Client • Connects to the server by IP and port. • Sends credentials for authentication. • Can send and receive messages from other users in real-time.

🛠️ Technologies Used • Python 3.x • socket • select • threading (optional for improvements) • Plain terminal/console interface

🧪 How to Run

Server

python server.py

Client

python client.py

📝 Make sure to update the server IP and port in client.py before running.

🔒 Future Improvements • Encryption (TLS or custom) • GUI using Tkinter or PyQt • Persistent user database (e.g. SQLite or MongoDB) • Chat rooms / Private messaging • Logging and audit trails

👥 Authors • Daniel Vihorev • Ilay Zendani

(Wild Life Cyber Security)

📜 License

All rights reserved to Daniel Vihorev and Ilay Zendani (Wild Life Cyber Security). For educational or private use only. Commercial usage prohibited without written permission.

About

Python Multi-User Chat Application Secure Chat Server & Client — Cross-Network Communication

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages