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. [login to view URL]). 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 [login to view URL] 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.
[login to view URL] 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 [login to view URL] 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.
[login to view URL] the file. If a file named [login to view URL] already exists in peer 1 and peer 2 , after choosing update option file 1 .txt changes to [login to view URL] and it is published again to peer 1 and peer 2 it should overwrite [login to view URL] to [login to view URL] 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.
[login to view URL] 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.
4 freelancers are bidding on average $35 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.............................................