Skip to content
/ foxter Public

P2P program for large file transfers.

License

Notifications You must be signed in to change notification settings

pi-etro/foxter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

P2P CLI program for large file transfers

Table of Contents

Usage

Download the source code here and compile it with JDK 8:

javac Servidor.java Peer.java

Launch the server on one terminal with java Servidor and enter the IP 127.0.0.1. Once the server is online, peers can join the network to register their ip, port and files and to search for files on other peers.

Launch the peer with java Peer, enter the IP 127.0.0.1, a port number and the absolute path of the folder with the files to be shared.

After the peer has joined and searched for a file present on other peer, the option to download the file directly from this peer is enabled.

To leave the network, the peer can select the LEAVE option or close the terminal (the server automatically detects that this peer is now offline and clears its data).

System design

The server (Servidor) has two main tasks: handle various peer requests and responses and periodically check if each peer is online (Alive).

Server Design

The peer has three tasks: handle multiple peers download requisitions, handle Alive control messages or responses from the server and execute the selected menu tasks (JOIN, SEARCH, DOWNLOAD or LEAVE).

Server Design

This system can transfer large files (up to GB files were tested) between peers, this was achieved by sending small 1 KB "packages" until EOF (end-of-file).

About

This project was developed for the UFABC Distributed Systems course. Each student implemented a simplified version of Napster.

DISCLAIMER: No 🦊 were injured during the development of this program.

License

GNU General Public License v3.0

About

P2P program for large file transfers.

Topics

Resources

License

Stars

Watchers

Forks

Languages