» Poradna » Programy

Vytváření univerzálního torrent klienta - jak fungují jednotlivé metody jako dht apod.

avatar
 | Microsoft Windows 8.1 Firefox 38.0

Tu:http://www.zive.cz/bleskovky/popcorninyourbr... jsem se dočetl o nějaké webové službě, která už krachla, ale zaujala mě, takže bych si rád vytvořil něco podobného, ne sice webovou službu, ale program, sice jiný, ale některé prvky by byly podobné, každopádně by fungoval sám o sobě a nepotřeboval by jakoukoliv službu typu Coinado.io) a další důvod je ten, že mi nevyhovuje ani jeden torrent klient.Má představa je asi taková, program by uměl:- stahovat torrenty (odesílat by vůbec neuměl, ani při stahování, protože stejně se stahuje většinou warez a odesílání je porušování autorského zákona) různými způsoby navazování s jiným klientem (přes tracker, přes DHT atd., uměl by tcp i udp, uměl by IPv4, IPv6/Teredo, uměl by vícevláknově stahovat jednu část torrentu).- pokud by se jednalo o audio a video, dokázal by takový torrent rovnou po začátku stahování i přehrávat, včetně titulků a audio stopy k filmu v torrentu nebo mimo torrent, a to přímo v programu nebo mimo program ve zvoleném přehravači- možnost volby posílat na privátní trackery jakékoliv hodnoty downloadu a uploadu, něco jako seedbox brčko: http://www.zive.cz/poradna/generovani-upload... Problém je ten, že jsem blbej a lenivej, takže asi s tou nejsložitější částí, tedy pochopením jak pracuje DHT a jak požádat jiného klienta o data, bych chtěl trošku energie ušetřit, nevíte tedy někdo o nějakých zdrojích, kde by to bylo dopodrobna popsané nejlíp i s example a nejlíp popsané tak aby to pochopil i blbec?A úplně nejlíp česky.Např. specifikaci torrent protokolu: http://www.bittorrent.org/beps/bep_0000.htmla pitvání trafiku ve woresharku se mi nějak nechce.O DHT například vím pouze to, že se nejdřív klient připojí na nějakej zdroj programu, např. router.utorrent.com, odkud si natáhne nejspíš Ukázat celý příspěvek

Mohlo by vás také zajímat

Odpovědi na otázku

avatar
 | Linux Firefox 38.0

já torrenty skoro nepoužívám, ale co jsem koukal na:http://alternativeto.net/software/torrent/tak bych juknul na Deluge:http://dev.deluge-torrent.org/wiki/About

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 38.0

Fakt že jo, Deluge opravdu umí stahovat bez odesílání. Škoda, že není tak hezký, malý, svižný, jako utorrent 2.2.1. Mimochodem používá ke komunikaci libtorrent, který je taky open source.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Před dávnou dobou jsem četl o klientovy BitThief: http://www.bitthief.ethz.ch/ ten torrenty stahuje, aniž by odesílal data. Jak to tak vypadá, tak zdroják k tomu asi není a už se o to nikdo nestará.Taky jsem před časem trochu fušoval do torrentů a chtěl jsem si něco k tomu naprogramovat, ale z nedostatku času z toho pak nic nebylo. Ale našel jsem monotorrent: https://github.com/mono/monotorrent což je knihovna napsaná v C# pro bittorrent komunikaci. A obsahuje i šifrování přenosu a DHT, jen nevím zda to komunikuje s DHT co tvoří uTorrent, nebo si to buduje vlastní DHT síť. Ono DHT je spíš takový obecný pojem a popis toho jak data rozprosřít do "cloudu" (tvořeného jednotlivými klienty) a jak v tom vyhledat to co potřebuji atd. Ale to v jakém formátu budou v DHT uložená data už záleží na programátorovi. Ovšem i tohle vypadá že na to pár let nikdo nesáhl, ale pro tvoje studium to může být dobrý začátek. Jen to myslím nepodporuje IPv6, nebo o tom nevím, když jsem to cca před 5ti lety zkoušel tak po ipv6 skoro neštěkl ani pes. Ovšem dnes ta situace není o moc lepší

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 38.0

Jo zkuším prolést.Já například narazil na knihovnu libtorrent http://sourceforge.net/projects/libtorrent/ta je stále ve vývoji a obsahuje vše, jen je pro mě složité se v ní vyznat.Tož zatím jen sonduju jak složité by bylo něco vytvořit.Co se týče sistuace ohledně ipv6, tak dnes je poměrně rozšířené používat Teredo (např. přes servery Microsoftu, např. Win 8 (8.1) jej má defaultně, u Win 7 si nejsem jistý) a při stahování to hodně pomáhá, pokud člověk nemá veřejnou ip, což je řekl bych drtivá většina, a vlastně to pomáhá i člověku s veřejnou ip, protože se rovnou může připojit na pasivy s teredem, jinak by musel čekat, než se na něj pasiv připojí (klidně to můžou být i 3 hodiny než se připojí). Takže podpora ipv6 je rozhodně důležitá a podle mě patří rozhodně do základu.Co se týče DHT, spojování mezi klienty musí být stejné a je stejné u všech klientů, protože jsou schopné mezi sebou komunikovat přes DHT, jediné co může být jiné je komunikace s tím starovacím serverem, odkud se tahají nějaké úvodní ip adresy (např. nějaké páteřní sítě) např. z router.utorrent.com pro utorrent.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 IE 11.0

Vícevláknové stahování: to dělá úplně každý klient, je to základní princip torrentu.Přehrávat video po zahájení stahování: poměrně nereálné, torrent nestahuje soubor od začátku do konce, ale vícevláknově na přeskáčku, navíc z různě rychlých zdrojů.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

K tomu přehrávání videa, není to až tak složité. Je sice pravda to co píšeš, ale když si bude dělat vlastního klienta, tak nebude až takový problém zakomponovat tam funkci, která bude s větší pravděpodobností vybírat kousky torrentu ze začátku souboru a s nižší pravděpodobností ten konec souboru. Tím pádem se začátek stáhne dřív než konec a bude si to moci pustit online.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Linux Firefox 38.0

+ vypočítat kdy je souvislý blok na začátku dostatečně dlouhý aby se zbytek stihl dostahovat než k němu přehrávač dojde. To by šlo :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 38.0

Stahovat se klidně může od první do poslední části postupně, umí to i například utorrent. A přece to, jakou část si vyžádá klient od jiného klienta, přece závisí na klientovi, když chci 1. část, tak mi vzdálený klient pošle 1. část.V čem umíš programovat? Já jen v autoitu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Primárně programuji v C# ale když umíš programovat tak na jazyku nezáleží, takže s trochou googlí pomoci (syntaxe, a funkce knihoven) dávám i C++, Javascript, apod. Jen když musím dělat v Javě tak na to celou dobu hrozně nadávám, ta mi nějak nesedla.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 38.0

Se máš, já bych taky chtěl uměl v C# a v C++, jenže nevím jak se minimálně C# naučit, nevíš nějaký vhodný manuál nebo jak začat? Autoit má tu výhodu, že se jej člověk nemusí učit, ten se učí úplně sám.Dyť já neumím ani zkompilovat kód, když nemá sln Například toto:http://sourceforge.net/projects/libtorrent/se kompiluje ve visual studiu jak?

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 38.0

Přehrávat video po zahájení stahování možné je, svede to i utorrent:http://forum.utorrent.cz/viewtopic.phphttp://www.utorrent.cz/help/manual/html/Appendix... http://www.utorrent.cz/help/manual/html/Appendix... není tedy otázka torrent protokolu, ale samotného klienta nebo nastavení klienta, to jaké části se stahují, klidně se tedy můžou stahovat postupně od první části až po poslední.To, aby se eliminoval problém s různě rychlými zdroji, jsem právě psal tu poznámku, kterou cituji v tomto příspěvku níže.Vícevláknově stahovat umí každý klient, jenže jsem to myslel trošku jinak, to mé:"uměl by vícevláknově stahovat jednu část torrentu" tedy upřesním. Každý torrent je rozdělen na části (bloky), dejme tomu, že u filmu jsou ty bloky 2 MB velké. A každá tato část se stahuje běžně pouze jedním vláknem tedy od jednoho zdroje, minimálně to platí u utorrentu, ten sice vícevláknově jednu část umí stahovat, ale používá to pouze u dokončení stahování celého torrentu (u posledních částí) a to vždy, i když se použije to kontinuální stahování od první části. V tom případě může nastat problém, když např. chceme rovnou přehrávat video v torrentu, protože když se začne stahovat 2 MB část od nějakého zdroje, který má upload 20 kB/s, tak to bychom se načekali, takže tam se musí použív víc vláken, takže např. toto může v utorrentu někdy vytvořit problém (vícevláknově jednu část ve všech částech torrentu nepoužívá). Už si rozumíme?

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: BitTorrent, Vytváření, Možnost volby