Peer to Peer File Transfer in a BitTorrent Scenario in java
Brief introduction to bittorrent:
A BitTorrent client is any program that implements the BitTorrent protocol. Each client is capable of preparing, requesting, and transmitting any type of computer file over a network, using the protocol. A peer is any computer running an instance of a client. To share a file or group of files, a peer first creates a small file called a "torrent" (e.g. [url removed, login to view]). This file contains metadata about the files to be shared and about the tracker, the computer that coordinates the file distribution. Peers that want to download the file must first obtain a torrent file for it and connect to the specified tracker, which tells them from which other peers to download the pieces of the [url removed, login to view] both ultimately transfer files over a network, a BitTorrent download differs from a classic download (as is typical with an HTTP or FTP request, for example) in several fundamental ways. BitTorrent makes many small data requests over different IP connections to different machines, while classic downloading is typically made via a single TCP connection to a single machine.
***The File transfer is only meant for small files like .txt or word files etc****
***The java program should utilize multithreading and sockets for connection***
1. The java code is for a small project should be implemented pure java in the simplest and understandable way as possible, the code should be well structured with comments for each method ,classes and functions.
2. As this is a peer to peer file transfer each peer should be established on different machines and if machine 1 with peer 1 sends a file machine 2 with peer 2 should receive the file similarly machine 3 and so on.
3. The ip address and port numbers should be provided in the runtime and should not be hardcoded.
4. The peers should be able to join and leave the network after transferring of file is done.
5. There should be a menu option which is as follows
• Register the peer with peer id
• Searching the file
• Update the file
• Download the file
6 .Registering the peer :This registers various peers in a network with unique peer id and each peer is assigned a port number.
[url removed, login to view] the file: Example if the server wants to send a file to peers it should first perform search in the peers if the file exists or not if does not exists then option should be provided like enter file name , path to file , then publish to [url removed, login to view] the receiving end example 4 peers are connected all should be intimated that “ do you want to receive the file ” if yes they should download the file and file transfer is completed. If any peer does not want to accept the file it should not be sent to that peer.
[url removed, login to view] the file. If a file named [url removed, login to view] already exists in peer 1 and peer 2 , after choosing update option file 1 .txt changes to [url removed, login to view] and it is published again to peer 1 and peer 2 it should overwrite [url removed, login to view] to [url removed, login to view] in peer 1 and 2 .The change can be confirmed by searching file in peer 1 and peer 2 if it was modified or not.
[url removed, login to view] option: This should download the file at the receiving peer.
10 exit the menu
Dead line is 2 days from now. Anyone who can really handle all the requirements in the given timeframe is requested to submit a bid or else please don’t.
5 freelancers are bidding on average $50 for this job
Hey A Java expert developer is here I can write a peer to peer program for you as per your need This is an initial bid Feel free to message me We can discuss about the Regards
Hi, I am interested to work on this project..... Ping me if you want me to work on this project..... Thnaks. Harsh.............................................