This project is a robust client-server file transfer system built using TCP sockets, designed as part of Operating Systems / Networking coursework.
The key innovation is Delta Synchronization (Delta Sync) — an rsync-style optimization that transmits only the modified blocks of a file instead of re-uploading the entire file.
The system includes:
- Multi-threaded TCP server
- Tkinter-based GUI client
- Real-time Flask monitoring dashboard
- Block-level SHA-256 hashing
- Integrity verification mechanism
- ✔ Reliable full file upload & download
- ✔ Delta Synchronization (>99% bandwidth savings)
- ✔ Multi-threaded concurrent server
- ✔ Real-time web dashboard (Flask + Chart.js)
- ✔ Block-level integrity validation
- ✔ Custom TCP protocol
Client (GUI / CLI) ↓ TCP Socket Communication ↓ Multi-threaded Server ↓ Delta Comparison Engine ↓ File Reconstruction + Integrity Check ↓ Monitoring Dashboard
- File split into 4096-byte blocks
- SHA-256 hash computed for each block
- Client sends block hashes to server
- Server compares against the existing file
- Server returns list of missing block indices
- Client sends only modified blocks
- Server reconstructs the file
- Final integrity check using full-file hash
Result:
If 4KB changes in 10MB file → only 4KB is transmitted.
server.py # Main multi-threaded TCP server client_gui.py # Tkinter-based GUI client utils.py # Hashing & chunking logic monitor.py # Thread-safe shared state dashboard.py # Flask web dashboard templates/ dashboard.html files/ # Server storage directory
- Python
- socket (TCP networking)
- threading (concurrency)
- hashlib (SHA-256 hashing)
- Tkinter (GUI)
- Flask (web dashboard)
- JSON (protocol data)
Developed as part of:
- Operating Systems / Networking coursework
- Client-Server architecture study
- Concurrency & synchronization concepts
This project is intended for academic and educational purposes only.
See LICENSE file for complete terms.