How qiubrian/reliable-udp-sender works
This is a Windows command-line UDP file-data transfer sender, not a general networking framework. The user supplies a host and link/window/loss parameters; main validates them, creates a DWORD payload, opens a sender session, sends chunks, closes the session, and compares a local CRC32 with the receiver-reported checksum. SenderSocket owns connection setup, packet transmission, ACK/retransmission handling, worker coordination, optional congestion control, and FIN-based shutdown. The excerpts establish the main calls and several worker/ACK relationships; unsampled method bodies limit finer-grained claims.
Main entry points: main.cpp CLI and validation · SenderSocket.cpp Send workers · CheckSum.cpp CRC32 calculator
Components 12
Command line
- CLI and validation
CSCE_463_HW_3_P3/main.cpp - DWORD payload
CSCE_463_HW_3_P3/main.cpp
Sender protocol
- Session setup
CSCE_463_HW_3_P3/SenderSocket.cpp - SenderSocket
CSCE_463_HW_3_P3/SenderSocket.cpp - Send workers
CSCE_463_HW_3_P3/SenderSocket.cpp - ACK and recovery
CSCE_463_HW_3_P3/SenderSocket.cpp - Congestion control
CSCE_463_HW_3_P3/SenderSocket.cpp - FIN shutdown
CSCE_463_HW_3_P3/SenderSocket.cpp
Integrity check
- CRC32 calculator
CSCE_463_HW_3_P3/CheckSum.cpp
Other components
- Operator
- UDP receiver
- Windows sockets
Connections 17
- Operator → CLI and validation: provides arguments
CSCE_463_HW_3_P3/main.cpp - CLI and validation → DWORD payload: initializes
CSCE_463_HW_3_P3/main.cpp - CLI and validation → Session setup: opens session
CSCE_463_HW_3_P3/main.cpp - CLI and validation → SenderSocket: sends chunks
CSCE_463_HW_3_P3/main.cpp - CLI and validation → FIN shutdown: closes session
CSCE_463_HW_3_P3/main.cpp - CLI and validation → CRC32 calculator: computes CRC32
CSCE_463_HW_3_P3/main.cpp - CLI and validation → SenderSocket: reads receiver checksum
CSCE_463_HW_3_P3/main.cpp - SenderSocket → Send workers: dispatches workers
CSCE_463_HW_3_P3/SenderSocket.cpp - Send workers → SenderSocket: sends packets
CSCE_463_HW_3_P3/SenderSocket.cpp - Send workers → ACK and recovery: receives ACKs
CSCE_463_HW_3_P3/SenderSocket.cpp - ACK and recovery → SenderSocket: updates send state
CSCE_463_HW_3_P3/SenderSocket.cpp - ACK and recovery → Congestion control: updates window
CSCE_463_HW_3_P3/SenderSocket.cpp - ACK and recovery → Send workers: requests retransmit
CSCE_463_HW_3_P3/SenderSocket.cpp - Session setup → Windows sockets: resolves UDP host
CSCE_463_HW_3_P3/SenderSocket.cpp - Send workers → Windows sockets: sends and receives
CSCE_463_HW_3_P3/SenderSocket.cpp - Windows sockets → UDP receiver: exchanges UDP packets
- FIN shutdown → UDP receiver: sends FIN
CSCE_463_HW_3_P3/SenderSocket.cpp