Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "ECF BitTorrent Provider"

(Adding an example)
m (Plug-in Usage: Removing unnecessary code)
Line 51: Line 51:
 
This section will describe how a developer would create a client using the BitTorrent plug-in.
 
This section will describe how a developer would create a client using the BitTorrent plug-in.
 
   
 
   
import java.io.IOException;
 
import org.eclipse.bittorrent.Host;
 
import org.eclipse.bittorrent.Torrent;
 
 
   
 
   
  public class BitTorrentDownloader {
+
  try {
+
     Torrent torrent = new Torrent("eclipse-sdk.torrent");
     public static void main(String[] args) {
+
    Host host = new Host(torrent);
        try {
+
    host.setPort(6881);
            Torrent torrent = new Torrent("eclipse-sdk.torrent");
+
    host.connect();
            Host host = new Host(torrent);
+
} catch (IOException e) {
            host.setPort(6881);
+
    e.printStackTrace();
            host.connect();
+
        } catch (IOException e) {
+
            e.printStackTrace();
+
        }
+
    }
+
 
  }
 
  }
  

Revision as of 19:06, 7 June 2006

Project Lead: Remy Chi Jian Suen

Mentor(s): Wayne Beaton, Scott Lewis, and Chris Aniszczyk

The goal if this project is to create an implementation of the file sharing API provided by the Eclipse Communication Framework using the BitTorrent protocol.

BitTorrent Plug-in Data Model

The package name org.eclipse.bittorrent may be altered when the plug-in is released.

Text in red denotes that the code has not been written yet.

org.eclipse.bittorrent

Host - reads in a Torrent connects to peers to begin seeding or downloading

  • contains exactly one Torrent
  • contains one or more DataFiles
  • contains one or more Pieces

Torrent - a representation of the metainfo stored within a .torrent file


org.eclipse.bittorrent.internal.torrent

DataFile - a representation of a file on the user's system for read/write operations

  • contains one or more Pieces

Piece - a piece of data that is needed to complete a download

  • contains one or more DataFiles


org.eclipse.bittorrent.internal.net

ConnectionPool - a thread pool that manages ConnectionThreads

  • contains exactly one Host
  • contains one or more ConnectionThreads

ConnectionThread - creates a PeerConnection to talk to a peer

  • contains exactly one PeerConnection

PeerConnection - connects to a peer and exchanges information

  • exactly one Host


org.eclipse.bittorrent.internal.encode

BEncodedDictionary - holds the key-value pairs stored within a bencoded string.

Decode - decodes information such as the contents of a torrent file

Encode - converts or alters information for use


Plug-in Usage

This section will describe how a developer would create a client using the BitTorrent plug-in.


try {
    Torrent torrent = new Torrent("eclipse-sdk.torrent");
    Host host = new Host(torrent);
    host.setPort(6881);
    host.connect();
} catch (IOException e) {
    e.printStackTrace();
}

External Links

Eclipse Communication Framework Website

BitTorrent Specification

Back to the top