Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Client Server Chat Application Banner

💬 Client-Server Chat Application

A real-time chat application built using Java Socket Programming, Multithreading, and Java Swing. The project demonstrates client-server communication, concurrent connection handling, and interactive desktop-based messaging.


📖 About The Project

The Client-Server Chat Application is a desktop-based messaging system developed using Java Socket Programming, Java Swing, and Multithreading.

The application establishes communication between a server and client over TCP sockets, allowing users to exchange messages in real time. The server is responsible for managing incoming client connections, while the client provides an intuitive graphical interface for sending and receiving messages.

This project demonstrates the practical implementation of networking concepts, concurrent programming, event-driven GUI development, and object-oriented programming using Java.


✨ Features

  • 💬 Real-time client-server messaging
  • 🌐 TCP socket communication
  • 🧵 Multithreaded server architecture
  • 🖥️ Java Swing graphical interface
  • ⚡ Instant message exchange
  • 🔗 Reliable client-server connection
  • 🎨 Simple and user-friendly interface
  • 📦 Lightweight desktop application

📸 Screenshots

Server Window Client Window

📑 Table of Contents

  • About
  • Features
  • Tech Stack
  • System Architecture
  • Project Workflow
  • Folder Structure
  • Installation
  • Usage
  • Learning Outcomes
  • Future Enhancements
  • Contributing
  • License
  • Author

🛠 Tech Stack

Technology Purpose
Java Application Development
Java Swing Graphical User Interface
Java Socket API Client-Server Communication
Multithreading Concurrent Client Handling
TCP/IP Network Communication

🏗 System Architecture

                 Client

                    │

          Java Socket (TCP)

                    │

             Server Socket

                    │

       Multithreaded Server Logic

                    │

          Message Transmission

⚙️ Project Workflow

Start Server
      │
      ▼
Server Waits for Connection
      │
      ▼
Client Connects
      │
      ▼
Socket Connection Established
      │
      ▼
Send / Receive Messages
      │
      ▼
Real-Time Communication

📂 Project Structure

Client-Server-Chatting-Application-in-Java
│
├── assets
│   ├── banner
│   │   └── banner.png
│   │
│   └── screenshots
│       ├── client.png
│       └── server.png
│
├── src
│   ├── Client.java
│   ├── Server.java
│   │
│   └── icons
│       ├── logo.png
│       ├── phone.png
│       ├── video.png
│       ├── arrow.jpg
│       ├── bunty.jpeg
│       ├── gaitonde.jpeg
│       ├── 1.png
│       ├── 2.png
│       ├── 3.png
│       └── 3icon.png
│
└──  README.md

🚀 Getting Started

Clone the Repository

git clone https://github.com/TanmayT134/Client-Server-Chatting-Application-in-Java.git

Navigate to the Project

cd Client-Server-Chatting-Application-in-Java

Run the Server

Compile and execute the server application.


Run the Client

Open another terminal or IDE instance and execute the client application.

Once connected, messages can be exchanged in real time.


▶ Usage

  1. Launch the server application.
  2. Start the client application.
  3. Establish the socket connection.
  4. Exchange messages between the client and server.
  5. Close the application to terminate the session.

📚 Learning Outcomes

This project demonstrates practical knowledge of:

  • Java Networking
  • Socket Programming
  • TCP/IP Communication
  • Multithreading
  • Concurrent Programming
  • Event-Driven Programming
  • Java Swing GUI Development
  • Object-Oriented Programming

🚀 Future Enhancements

  • 👥 Multiple Client Support
  • 😊 Emoji Support
  • 📁 File Sharing
  • 🔐 End-to-End Encryption
  • 🟢 Online User Status
  • 💾 Chat History
  • 🌐 LAN Communication
  • 🎙️ Voice Messaging
  • 📹 Video Calling
  • ☁️ Database Integration

🤝 Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a feature branch.
  3. Commit your changes.
  4. Push the branch.
  5. Open a Pull Request.

👨‍💻 Author

Tanmay Tawade

If you found this project helpful, consider giving it a ⭐ on GitHub.


⭐ Star this repository if you found it useful!

Made with ❤️ by Tanmay Tawade

About

Real-time client-server chat application built with Java Socket Programming, Java Swing, and Multithreading, demonstrating concurrent communication and desktop GUI development.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages