Examples
--------

This directory contains a number of subdirectories, each with a specific
example.
   * P2PStreamSeed/ : Contains the server side of a simple peer-to-peer streaming system.
                      
                      A source stream is split into chunks of a few megabytes
                      in real-time, and then these chunks are processed to
                      produce BitTorrent metadata (a .torrent file).
                      
                      This metadata is uploaded to a website and the chunks
                      are then shared using BitTorrent.


   * P2PStreamPeer/ : Contains the client side of said streaming system.
   
                      .torrent (BitTorrent metadata) files are downloaded
                      from a webserver automatically as they become available.
                      
                      BitTorrent is then used to download the chunks described
                      by this metadata from the original seed (above) and any
                      other peers that have already downloaded it.
                      
                      Chunks and parts of chunks are also uploaded to other
                      peers during and after the download. As chunks finish
                      downloading, the original stream is reconstructed.
   
   * TorrentGUI/    : Contains a Tkinter BitTorrent client GUI.
   
   * TorrentSeeder/ : Creates a .torrent file for each filename entered
                      and seeds the file data (uploads it to peers that
                      request it).


For examples of the usage of my components, see the bottom of each source code file.


Ryan Lothian, August 2006
