A local file sharing utility written in Python. Uses multicast UDP to share the list of files, and TCP to transfer the files themselves.
Project description
simpleshare
A local file sharing utility written in Python. Uses multicast UDP to share the list of files, and TCP to transfer the files themselves.
Installation:
- 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:
- TBD, just download a binary for your platform
Usage:
- 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.
Building
- Linux:
$ make
- Windows:
> .\Makefile.bat
(venv) $ pyinstaller simpleshare/__main__.py --clean -F -n simpleshare
Screenshots
Home
Upload
Download
TODO:
- 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
Bugs:
- 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
License
MIT © 2019 Sebastian Safari
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
simpleshare-1.2-py3-none-any.whl
(10.0 kB
view hashes)
Close
Hashes for simpleshare-1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3547601cfbffda8be17f3e1b66e10a08a667269569aba496d247ab15364cfd2 |
|
MD5 | e4527f975bd92156cedd0dbacc1d0c7d |
|
BLAKE2b-256 | 52fde40af1f54a509bdb59a6198cb9540aa2f4f116659238e6ab2bd14a815f60 |