How simchateich/simple-chat works
Simple-Chat is a GUI instant-messaging client and threaded server, with file downloads over TCP or reliable Go-Back-N UDP. The main workflow is GUI action → client request logic → server protocol handling → response or chat update; downloads negotiate a transfer port before moving file data. The README documents these capabilities, while the excerpts show key calls and protocol handling. Some GUI and server paths are only partially excerpted, so unsampled internal links are omitted.
Main entry points: Server.py Protocol Handler · GUI.py Chat GUI · logic.py Request Logic · analysis_unit.py Response Parser
Components 18
Client
- Chat GUI
Client/GUI.py - Request Logic
Client/logic.py - Response Parser
Client/analysis_unit.py - Update Listener
Client/GUI.py
Server
- Server Entry
Server/main.py - Connection Listener
Server/Server.py - Client Service
Server/Server.py - Protocol Handler
Server/Server.py - Protocol Codes
Server/Protocol.py - Client Session
Server/Client.py - Chat Messaging
Server/Server.py - Presence Updates
Server/Server.py - File Catalog
Server/Server.py
File Transfer
- Download Negotiation
Server/Server.py - TCP Transfer
Server/Server.py - Go-Back-N Sender
Server/RDT_Sender.py - Go-Back-N Receiver
Client/RDT_Receiver.py
Other components
- Chat User
Connections 20
- Chat User → Chat GUI: uses
README.md - Chat GUI → Request Logic: dispatches requests
Client/GUI.py - Chat GUI → Response Parser: parses updates
Client/GUI.py - Chat GUI → Update Listener: starts listener
Client/GUI.py - Update Listener → Response Parser: parses messages
Client/GUI.py - Request Logic → Response Parser: parses responses
Client/logic.py - Request Logic → Protocol Handler: sends requests
README.md - Server Entry → Connection Listener: starts listening
Server/main.py - Connection Listener → Client Service: starts client thread
Server/Server.py - Client Service → Protocol Handler: routes messages
Server/Server.py - Protocol Handler → Protocol Codes: uses codes
Server/Server.py - Protocol Handler → Client Session: creates session
Server/Server.py - Protocol Handler → Chat Messaging: handles chat requests
Server/Server.py - Protocol Handler → Presence Updates: broadcasts changes
Server/Server.py - Protocol Handler → File Catalog: lists files
README.md - Protocol Handler → Download Negotiation: negotiates download
Server/Server.py - Download Negotiation → Go-Back-N Sender: starts UDP sender
Server/Server.py - Download Negotiation → TCP Transfer: starts TCP sender
Server/Server.py - Chat GUI → Go-Back-N Receiver: starts UDP receive
Client/GUI.py - Go-Back-N Sender → Go-Back-N Receiver: transfers datagrams
README.md