A peer-to-peer file sharing application that enables direct file transfers between peers using a relay server for connection establishment.
This project implements a peer-to-peer file sharing system where clients can connect to each other through a relay server. The relay server facilitates the initial connection between peers using Redis channels, after which peers can transfer files directly.
- Navigate to the relay_server directory:
cd relay_server python manage.py runserver 0.0.0.0:8000
- Install the required packages from the project root:
pip install -r requirements.txt
To start a client, use the zender.py
script with the relay server's IP address and port:
python zender.py <relay_server_ip>:<port>
Example:
python zender.py 122.32.44.55:8080
- The sender initiates a file transfer by specifying the file path
- The relay server connects the sender with available peers
- Once connected, file transfer happens directly between peers the server only act as a relay
- Relay Server: Uses Redis for managing connection channels between peers
- Direct P2P Transfer: After connection establishment, files transfer directly between peers the server act as relay
- Simple Command Line Interface: Easy to use client interface
- Cross-Platform: Works on Windows, macOS, and Linux
- end - end encryption: The data transaction is fully encrypted
- See
requirements.txt
for dependencies
- Connection Refused: Make sure the relay server is running and the IP:Port is correct
- Permission Denied: Ensure you have proper permissions to read/write files
