A local file sharing utility written in Python. Uses multicast UDP to share the list of files, and TCP to transfer the files themselves.
-
Source:
- Install Python 3
-
$ git clone https://github.com/ssebs/simpleshare $ cd simpleshare/ $ python -m venv venv
- Linux:
$ source ./venv/bin/activate
- Windows:
> .\venv\Scripts\activate
-
(venv) $ pip install -r requirements.txt
-
Binary:
- Download a binary for your platform in the releases page.
-
PyPI:
$ pip install simpleshare
$ simpleshare
- CLI
usage: simpleshare.py [-h] [--type {client,server}] [--ip IP] [FILENAME] Local file sharing utility. Can be used as server and as a client. Run this without any arguments to run GUI. positional arguments: FILENAME Name of the file you want to share, if running as the server. optional arguments: -h, --help show this help message and exit --type {client,server} Type, how do you want to use this tool --ip IP IP address, only used if you're the server
- GUI
- Double click the exe / binary.
- Linux:
$ make
- Windows:
> .\Makefile.bat
(venv) $ pyinstaller simpleshare/__main__.py --clean -F -n simpleshare
- Structure program
- 3 connections
- Server: Share filename (Multicast)
- Client: Reply to server saying that you want the file (UDP)
- Server: Send file to client (TCP)
- CLI
- GUI
- 3 connections
- Server
- "Broadcast" (multicast) that you're sharing "x" file
- Have server send files if requested to IP found.
- CLI
- GUI
- DnD
- Custom timout
- Client
- Listen to see if anyone is sharing files
- List available files
- Download files to specified file name/path
- CLI
- GUI
- Make this work with 1 file, 1 client
- Make this work with 1 file, 2 clients
- Make this work with 2 files (2 servers), 1 client
- Make this work with 2 files (2 servers), 2 client
- Binary output (.exe, .app, etc.)
- Icon support
- Refactor + document
- Unit Tests
- Threads won't stop properly
- Can't have 2 clients
- Can't have 2 servers
- GUI
- Styling
- Only Choose IP if more than 1 available
- Share Thread issues
MIT © 2019 Sebastian Safari