website

Personal website
git clone https://github.com/michaelneuper/website.git
README | Files | Log | Refs

website/src/content/projects/chat-voip-p2p.md (1222B)


---
name: chat-voip-p2p
title: "Chat, voice calls and P2P file sharing"
order: 5
cat: sw
demo: rbudp
demoNote: "The RBUDP file transfer in miniature, animated for this page: blast every packet over UDP, ask over TCP which ones arrived, and resend the gaps."
summary: "Four networking projects in Java: chat, fast UDP file transfer, voice calls and P2P sharing."
stack: "Java, JavaFX, TCP and UDP sockets, Java Sound, RSA, AES-GCM"
note: "private (university coursework, group project)"
---

Four projects my group built for a networks course:

- A chat server that handles many clients at once, with a JavaFX client, load-tested with dozens of simultaneous users.
- File transfer over Reliable Blast UDP, measured against TCP across packet sizes, loss rates and file sizes from 1 to 100 MB.
- The chat extended with voice calls and group calls streamed over UDP, plus voice notes.
- Peer-to-peer file sharing: a server brokers searches, then peers send files to each other directly over TCP, encrypted with [AES-GCM](https://en.wikipedia.org/wiki/Galois/Counter_Mode) keys exchanged using [RSA](https://en.wikipedia.org/wiki/RSA_cryptosystem), with pause and resume. We tested it across four machines over Tailscale.