Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how do i make my own P2P software? [closed]

Tags:

p2p

how can i make my own napster ? which library are these p2p programs using ? i am not too familiar with the concept of socket programming. could you make p2p program using Qt4 ?

i've been wondering about this question since the Napster days.

how would you also go about creating the next "bitorrent" ? is this by using similar socket libraries ?

what's the latest in p2p technology ? are there any news sites? what's the future hold for p2p ?

like image 819
wefwgeweg Avatar asked Apr 20 '10 09:04

wefwgeweg


People also ask

How does P2P software work?

P2P file sharing programs allow computers to download files and make them available to other users on the network. P2P users can designate the drives and folders from which files can be shared. In turn, other users can download and view any files stored in these designated areas.

What are P2P softwares?

Peer-to-peer (P2P) software allows “peers” (individual computer systems) to connect to each other over the internet to share files. Examples of mainstream P2P software programs include BitTorrent, Limewire, Ares and AresWarez, Kazaa, Azureus, DC++ and Morpheus.

How do I delete a peer to peer file sharing?

Stop sharing a fileSelect a file or folder. Tap Manage access. Find the person you want to stop sharing with. Remove.


1 Answers

P2P or Peer-to-Peer is a very hard type of program to create, mostly because of its very structure. Most internet applications are Client-Server this is because a lot of headaches are solved just by having a fixed server you know you can connect to. At the end of the day, that's more or less all Napster did, it just indexed files and said who is currently hosting them.

The other problem with creating P2P software, is that developing it on your own, you will have very few peers to test with, even if you do create a bunch of virtual computers. You will find it hard to test it scaled to 00's of users.

First steps though, you will need to learn to program in a suitable language, something like C++ or C# maybe just make it as a console application to learn the technology.

Next, learn how to work with files. Not much use if you can't save stuff is it.

Networking next. Start with a client-server set up just to get to grips with transferring files. Make a server app that gives the files and a client app that downloads it. Then start to scale it to one server giving files to lots of clients.

Final step is to merge the client and server so that as the peer downloads more of the file, it can start to be a server and let other clients download from it.

If you want, now you can think about a GUI.

like image 165
thecoshman Avatar answered Sep 22 '22 14:09

thecoshman