Wie kann ich ein .torrent in Java generieren?

7

Ich möchte eine .torrent-Datei in Java generieren, aber ich möchte keine große API, die Scraping-Tracker, Seeding usw. verwendet. Dies ist nur für einen Client, der Metadaten generiert. Welche leichten Lösungen gibt es? Ich erzeuge nur ein .torrent einer einzelnen ZIP-Datei.

Danke!

    
Kristopher Ives 09.01.2010, 09:02
quelle

2 Antworten

22

Ich habe diesen eigenständigen Java-Code zusammengestellt, um eine .torrent-Datei mit einer einzigen Datei vorzubereiten.

Die .torrent-Datei wird durch Aufrufen von createTorrent() erstellt, wobei der Name der .torrent-Datei, der Name der freigegebenen Datei und die Tracker-URL übergeben werden.

createTorrent() verwendet hashPieces() , um die Datei pieces mit der Java-Klasse MessageDigest zu hashen. Dann erstellt createTorrent() ein Meta-Info-Wörterbuch , das die Torrent-Metadaten enthält. Dieses Wörterbuch wird dann im richtigen bencode -Format mit den encode*() -Methoden serialisiert und in einer .torrent-Datei gespeichert.

Weitere Informationen finden Sie in der BitTorrent-Spezifikation .

%Vor%

Codeänderungen: Machen Sie dies etwas kompakter, beheben Sie die Sichtbarkeit der Methoden, verwenden Sie gegebenenfalls Zeichenliterale, verwenden Sie instanceof Number . Und in jüngerer Zeit lese die Datei mit Block I / O , weil ich versuche, es für real zu verwenden und Byte-I / O ist nur langsam,

    
Alexandre Jasmin 29.01.2012, 07:52
quelle
10

Ich würde mit Java Bittorrent API beginnen. Das jar ist ungefähr 70Kb groß, aber Sie können es wahrscheinlich entfernen, indem Sie die Klassen entfernen, die nicht notwendig sind, um Torrents zu erstellen. Das SDK enthält ein Beispiel ExampleCreateTorrent.java veranschaulicht, wie Sie genau das tun, was Sie brauchen.

Sie können auch sehen, wie es in den Open-Source-Java-Clients wie Azureus implementiert ist.

    
CrazyCoder 09.01.2010 09:25
quelle

Tags und Links