WebSocket Chat Room & File Transferring
Reference :
- Tkinter GUI programming by example
- 特洛伊木馬病毒程式設計(加強版)
- Foundations of Python Network Programming
![](https://camo.githubusercontent.com/fcee7a2d67c4d6362beae958ea8dcaad011a80d5aa6df8dafd0faf87680907e9/68747470733a2f2f692e696d6775722e636f6d2f55616e753850382e706e67)
A Simple project of a GUI chat room.
- The user can send/download file and do a public/private chat with 3 servers(Download, Chat and Upload Server).
- Each file will include md5 algorithm encryption before sending
![](https://camo.githubusercontent.com/65f384d259e12ff5bbd830ec889061132d62a42a17fd96644d49c5df23e420cb/68747470733a2f2f692e696d6775722e636f6d2f7a674b773756312e706e67)
OS : Debian Version 10.4 , Raspberry Pi 4
- Thread
![](https://camo.githubusercontent.com/24bf91aa8b0ea63cf90cd2005f4c2cc07b7e9264ae1a6d9725dfb38310c05fbb/68747470733a2f2f692e696d6775722e636f6d2f6f5830626169562e6a7067)
- File Transfer
- Each transferring file with headers
- Each Header may contain some information
(e.g. File Size, File Name, File Digest ..)
- Methods to send a file
- Send a file without splitting into blocks
- Split file to parts(blocks) if file is too large
- GUI interface
- Transferring file will include md5 header
- Using md5 to check if file have been tampered with
![](https://camo.githubusercontent.com/e129795efd38345f01cf2144726bcd88e4ae2642b4c3070a4350154e0cc52214/68747470733a2f2f692e696d6775722e636f6d2f3938655a6771732e706e67)