https://github.com/laurentbarraud/wpf-chat-server
WPF chat app in C#, using async TCP networking and a custom packet protocol.
https://github.com/laurentbarraud/wpf-chat-server
async-programming chat-app chat-application chat-client chat-server chat-ui csharp-networking french instant-messaging lightweight messaging messaging-app network-programming packet-processing socket-programming tcp-client tcp-server wpf-chat
Last synced: about 1 month ago
JSON representation
WPF chat app in C#, using async TCP networking and a custom packet protocol.
- Host: GitHub
- URL: https://github.com/laurentbarraud/wpf-chat-server
- Owner: laurentbarraud
- License: other
- Created: 2024-06-13T20:05:29.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2026-01-25T01:44:55.000Z (about 2 months ago)
- Last Synced: 2026-01-25T14:32:06.736Z (about 2 months ago)
- Topics: async-programming, chat-app, chat-application, chat-client, chat-server, chat-ui, csharp-networking, french, instant-messaging, lightweight, messaging, messaging-app, network-programming, packet-processing, socket-programming, tcp-client, tcp-server, wpf-chat
- Language: C#
- Homepage:
- Size: 5.31 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Chat Client
A real‑time WPF chat client and TCP server in C#, featuring a custom binary protocol, framed packet system, RSA encryption, and a modern interface.
[](https://github.com/laurentbarraud/wpf-chat-server/releases)
[](https://github.com/laurentbarraud/wpf-chat-server/releases)
### Features
Core
- 🔐 End‑to‑end RSA encryption — automatic keypair generation and real‑time public key sync
- 🔑 Public Key Monitor — live view of all known keys, drives encryption state
- 📦 Length‑prefixed packet framing — no desync, no corrupted packets
- 🌐 Async TCP networking — clean connect/disconnect cycle.
Client
- 👥 Real‑time user list — updates automatically on login/logout
- 😀 UTF‑8 messaging — emoji‑compatible
- 🔌 Configurable TCP port — choose the port before connecting
- 🏠 Local mode — runs locally if no IP address is provided
- 🪟 System tray integration — minimize/close to tray
- 🎨 Theme toggle — light/dark themes switchable at any time
- 🌐 Instant language switching — localized in French, Spanish and English
- ✏️ Adjustable input field — resize or shift it horizontally to match your layout preferences
- 🎞️ Subtle WPF animations using xaml storyboards and UI polish
Server
- ⚡ Async TCP engine — handles multiple clients concurrently with non‑blocking I/O
- 📡 Broadcast & routing logic — distributes messages to all connected clients
Architecture
- 🧱 Three‑module structure — Client, Server, Protocol
- 🧩 MVVM‑light — clean separation of UI and logic
- 🔧 Custom packet reader/writer — opcode‑based routing
### Download
Go to the [Releases](../../releases) section.
Technical documentation is available [here](/docs/ChatClient-documentation.pdf) —
Documentation technique disponible [ici](/docs/ChatClient-documentation-fr.pdf).