A peer-to-peer group based file sharing system (using torrent architecture) where users can upload and download files from the group they belong to. File is divided into chunks of 512KB and Downloads are parallel from multiple peers. Tracker maintains the user, group and file information to assist peers to communicate between them. Uses SHA1 for checking file integrity.
- Run Tracker:
cd tracker
g++ tracker.cpp -o tracker
./tracker
tracker_info.txt
contains the IP, Port details of all the trackers. Ex:
127.0.0.1
5000
- Run Client:
cd client
g++ client.cpp -o client -lssl -lcrypto
./client <IP> <PORT>
example: ./client 127.0.0.1 18000
- Create user account:
create_user <user_id> <password>
- Login:
login <user_id> <password>
- Create Group:
create_group <group_id>
- Join Group:
join_group <group_id>
- Leave Group:
leave_group <group_id>
- List pending requests:
list_requests <group_id>
- Accept Group Joining Request:
accept_request <group_id> <user_id>
- List All Group In Network:
list_groups
- List All sharable Files In Group:
list_files <group_id>
- Upload File:
upload_file <file_path> <group_id>
- Download File:
download_file <group_id> <file_name> <destination_path>
- Logout:
logout
- Show_downloads:
show_downloads