https://github.com/medovanx/chatter-wave
A cross-platform chat application built with PyQt5 supporting both TCP and UDP protocols for network communication.
https://github.com/medovanx/chatter-wave
socket-io tcp udp
Last synced: about 2 months ago
JSON representation
A cross-platform chat application built with PyQt5 supporting both TCP and UDP protocols for network communication.
- Host: GitHub
- URL: https://github.com/medovanx/chatter-wave
- Owner: medovanx
- License: mit
- Created: 2025-04-02T00:31:40.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-18T16:43:12.000Z (about 1 year ago)
- Last Synced: 2025-06-18T18:08:07.609Z (about 1 year ago)
- Topics: socket-io, tcp, udp
- Language: Python
- Homepage:
- Size: 2.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Chatter Wave
A cross-platform chat application built with PyQt5 supporting both TCP and UDP protocols for network communication.
[](https://www.python.org/downloads/)
[](https://pypi.org/project/PyQt5/)
[](https://opensource.org/licenses/MIT)
## Features
### Communication Protocols
- **TCP Protocol**: Reliable, connection-oriented communication
- **UDP Protocol**: Lightweight, connectionless communication
- **Protocol Comparison**: In-app explanation of TCP vs UDP differences
### User Interface
- **Tab-Based Chat**: Public chat and private conversation tabs
- **Unread Message Indicators**: Visual notifications for new messages
- **Online User List**: Real-time display of connected users
- **Message Formatting**: Color-coded messages by sender type
### Network Features
- **Configurable Connection**: Customizable host and port settings
- **Username Selection**: Personalized identity in chats
- **Error Handling**: Robust management of network issues
- **Server Notifications**: System messages for user activity
### Client-Server Architecture
- **Multi-Client Support**: Handles multiple simultaneous connections
- **Protocol Mixing**: Manages both TCP and UDP clients
- **Message Routing**: Intelligent message delivery
- **Heartbeat Mechanism**: Connection maintenance for UDP clients
## Screenshots


## Installation
### Prerequisites
- Python 3.6+
- PyQt5
### Setup
```bash
git clone https://github.com/medovanx/chatter_wave.git
cd chatter_wave
pip install -r requirements.txt
```
Alternatively, you can download pre-compiled executable files from the [Releases](https://github.com/medovanx/chatter_wave/releases) page.
## Usage
### Starting the Server
```bash
python server.py
```
Default ports: TCP 9090, UDP 9091
### Connecting
1. Launch client application: `python chat_client.py`
2. Enter server details and username
3. Select protocol (TCP/UDP)
4. Click "Connect"
### Chatting
- **Public Chat**: Type in main tab
- **Private Chat**: Double-click username to open private tab
## Technical Details
### Code Structure
- **ChatWindow**: Main UI logic
- **ChatTab**: Individual chat tabs
- **ChatClient**: Network communication
- **SignalHandler**: Qt signal management
- **ChatServer**: TCP/UDP server implementation
### Message Format
JSON-formatted messages:
```json
{
"type": "public|private|server|error|user_list",
"from": "username",
"to": "recipient_username",
"message": "content",
"users": ["user1", "user2", "..."]
}
```