Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Client Chat Application

C++, Linux Sockets, Multithreading, Epoll

🚀 Overview

This is a high-performance multi-client chat application built in C++ using Linux Sockets, Multithreading, and Epoll for efficient real-time messaging. The server can handle multiple clients concurrently, and clients can send messages to each other through the server.


📌 Features

Multi-Client Support – Uses epoll for efficient handling of multiple clients.
Concurrent Server – Handles multiple connections using multithreading.
Custom Messaging Protocol – Implements message framing and error handling.
Secure Communication – Supports basic encryption for data exchange.
Non-Blocking I/O – Uses epoll() to efficiently manage client connections.
User Authentication – Simple login system for secure access.
Message Logging – Stores chat history for later retrieval.


🛠️ Technology Stack

  • C++ – Core programming language.
  • Linux Sockets – For TCP/IP communication.
  • Multithreading (pthread) – For concurrent request handling.
  • Epoll – For non-blocking, event-driven network handling.
  • OpenSSL (optional) – For encrypted communication.

⚙️ Installation & Setup

Clone the Repository

git clone https://github.com/yourusername/MultiClientChat.git
cd MultiClientChat

Compile the Server & Client

g++ -o server server.cpp -lpthread
g++ -o client client.cpp

Run the Server

./server

Run Multiple Clients

./client

🖥️ Usage

Server Commands

  • exit – Shuts down the server.
  • list – Displays all connected clients.

Client Commands

  • /msg – Send a private message.
  • /all – Broadcast a message to all users.
  • /quit – Disconnect from the chat.

📜 License

This project is licensed under the MIT License – Feel free to use and modify it!

Author

Developed by Srinath Duvvuri.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages