An open API service indexing awesome lists of open source software.

https://github.com/andyferns/socket-chat-application

A simple mini project aiming to understand and implement socket programming in java
https://github.com/andyferns/socket-chat-application

java socket-programming swing-gui

Last synced: about 1 year ago
JSON representation

A simple mini project aiming to understand and implement socket programming in java

Awesome Lists containing this project

README

          

# Java Socket Chat Application πŸ’¬

A simple yet modern real-time chat application built in Java using sockets and Swing for GUI. Inspired by Discord’s clean layout, this project demonstrates client-server communication with a stylish dark-themed interface.

## ✨ Features

- πŸ“‘ Real-time messaging over TCP sockets
- πŸ‘€ Username-based login (displays all active users)
- 🧍 Sidebar showing online users
- πŸͺŸ Clean Swing-based GUI

## πŸ“‚ Project Structure

chat/
β”œβ”€β”€ client/
β”‚ β”œβ”€β”€ ChatClient.java
β”‚ └── ChatGUI.java
β”œβ”€β”€ server/
β”‚ └── ChatServer.java
| └── ChatHandler.java

## πŸ› οΈ Requirements

- Java 8 or higher
- A terminal or IDE that supports Java compilation and execution (duh)

## πŸš€ How to Run

### 1. Compile all files

```bash
javac chat/server/ChatServer.java chat/client/ChatClient.java chat/client/ChatGUI.java
```

### 2. Start the server

```bash
java chat.server.ChatServer
```

### 3. Start clients (in separate terminals or IDE Windows)

```bash
java chat.client.ChatClient
```

## Concepts covered

- Java Socket Programming (TCP/IP)
- Multi-Threading for handling multiple clients at the same time
- GUI design with Swing
- Message broadcasting and client management