Peer To Peer File Sharing...

James Matthews nytrokiss at gmail.com
Tue Jan 8 14:59:33 EST 2008


Look at the old source code of the Bittorrent client for ideas!

On Jan 8, 2008 8:51 PM, Dom Rout <Dom.Rout at gmail.com> wrote:

> Hello.
> Well, this is my first post on any USENET group anywhere, so I hope I
> get it right. Basically, I just want to get some opinions on a plan of
> mine for a new project.
>
> I want to produce a small, peer to peer, file sharing network for the
> use of myself and some of my friends. The purpose of this is basically
> to allow us to share files conveniently without relying on technology
> such as Windows Live Messenger (Yuck).
>
> I have a VPS which I would like to dedicate to the task of acting as a
> tracker, so I can run a server application written in python on it. I
> will also write the first client in python, although I may go for a
> different language for the client in the final version, for
> performance. For now, Python is perfect because of the ease of use
> that it offers and the fact that I already know a bit about socket
> programming using it.
>
> Also concerning architecture, I will also have a number of peers that
> connect to the tracker and also to other peers, via an IP address
> provided by the server, as necessary to download the files.
>
> The files themselves should be split up into "Chunks" of fixed length,
> which will be given an index and tracked by the server. The server
> should know which clients have which chunks of a file, and when a
> client needs to download a file the server should look for other
> clients that have chunks from that file and give the IP address to the
> client, which should then for a connection to this peer and download
> the parts of the file that are available.
>
> When managing the chunks of a file, I will need to use a mutex to
> allow reading and writing of them. I should provide a getter and
> setter method in each file to allow chunks to be placed into it more
> conveniently. The getter and setter should both use mutex's to allow
> multiple threads of uploads and downloads at the same time.
>
> I will need to implement a username and password system, to restrict
> the users of the system to people that I trust.
>
> To uniquely identify a file, I would like to use a file path. There
> should be a theoretical directory that contains all shared files,
> although the client should be given the option of which files from the
> directory to download.
>
> This directory should look like:
> "Global/"
> "Global/Images/"
> "Global/Music/"
> "Users/<username>/<sharedfolder>"
>
> It would be nice if it was possible to subscribe to certain
> directories, and download new files from them as need be.
>
> Well, these are my ideas so far. Is anything drastically obviously
> wrong, and can anyone suggest to me any best practices when
> implementing this sort of design?
>
> Thanks, Dominic Rout.
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
http://search.goldwatches.com/?Search=Movado+Watches
http://www.jewelerslounge.com
http://www.goldwatches.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080108/ccad2a6a/attachment-0001.html>


More information about the Python-list mailing list