A simple file transfer client using TCP.
- Design
- Usage
- Contributing
The file transfer system uses the following components:
delivery.sh- Takes user input and executes eitherclient.pyorhost.pyprotocol.sh- Provides a developer interface for the protocolclient.py- Send file(s) to specified IPhost.py(server) - Listens for message fromclient.pyand saves the file(s) contents
Two protocols are used to communicate and transfer data:
| Bytes | Description |
|---|---|
| 1 | filename length |
| 32 | checksum |
| 32 | filename |
| 8 | filesize |
| n | content |
Checksum will use the hashlib library.
| Hex | Description |
|---|---|
| 0x01 | connection handshake |
| 0x02 | begin sending |
| 0x03 | end connection |
| 0x10 | start file |
| Hex | Description |
|---|---|
| 0xF0 | connection success |
| 0xF1 | modal mismatch |
| 0xF2 | Filename more than 256 characters/non ascii |
- Send file(s) to to ip -
./delivery.sh send IP FILENAME [FILENAME2 ..] - Save file to specific location -
./delivery.sh receive IP DIRECTORY - Get help on usage -
./delivery.sh -h - Get help on specific mode -
./delivery.sh MODE -h
Contributors include Five Grant and Satchel Baldwin