Permalänk
Medlem

Utveckla en Bittorrent client

Tjenare allihopa

Jag betvivlar inte att det finns god kompetens här på forumet så därför beslutade jag mig för att posta detta inlägg här på Sweclockers. Jag har under de senaste veckorna haft tankarna på att utveckla en egen bittorrent client för linux som ett litet hobbyprojekt. Anledningen att jag vill göra detta är att det dels är lärorikt samt att jag inte har hittat en grafisk klient för linux som passar min ändamål, de jag gillar är bannade på min favorit trackers.

Tanken är att skriva den i C eller C++, har inte bestämt mig ännu om jag vill använda mig av objektorienterad programmering eller inte. Till och börja med blir det nog C, går förmodligen över till C++ om jag känner att det finns behov för det. Min favorit klient är qtorrent och tanken är väl att försöka mig på att göra något liknande.

Till saken, dvs varför jag postat detta inlägg. Jag tänkte kolla om det finns någon som sysslar med eller har sysslat med något liknande och kanske har tips på vad jag skall börja? Det känns som jag behöver läsa in mig på en hel del saker samt kanske också titta på bittorrent klienter med öppen källkod. Hur som helst, tanken är att börja i en liten skala och sedan låta projektet utvecklas till något större allt eftersom min kunskaper i ämnet förbättras.

Mycket tacksam för tips, artiklar, inspiration mm som kan få in mig på rätt spår.

Permalänk
Medlem

Det du ska börja titta på är protokollet, som finns här: http://www.bittorrent.org/protocol.html

Antar att du redan är ganska bra på att programmera ..

Permalänk
Glömsk

Jag skrev en för några år sedan. Fungerade att använda, men slutade utveckla eftersom det fanns så många klienter. Det är inte så svårt, men lärorikt.

Vad du kan börja med är att koda en bencode-enkodare/dekodare. När du gjort det är du på god väg att kommunicera med trackern.

http://en.wikipedia.org/wiki/Bencode

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Den klient jag använder på linux är azureus, men detta blir tungdrivet med många parallella tankningar, men du kan säkert kolla på såsen och få lite tips hur du kan strukturera programmet.

http://prdownloads.sourceforge.net/azureus/Azureus_2.4.0.2_so...

Permalänk
Medlem

Jag får tacka för tipsen som inkommit hittills och det är absolut en bra början, hoppas naturligtvis att de kanske inkommer ännu mer.

@Psionicist, vilket språk skrev du din klient i?

Permalänk
Medlem

om du bara vill bygga gui-delen så kan du använda det fina libtorrent, http://libtorrent.rakshasa.no/

Visa signatur

4 datorer: 9 cpuer (plats för 4 till), 10scsi+1satadisk, 7.75gb ram, bara Linux
http://isitfika.net http://code.kryo.se

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Yarrick
om du bara vill bygga gui-delen så kan du använda det fina libtorrent, http://libtorrent.rakshasa.no/

Det där verkar intressant, tror det är ett perfekt sätt att börja leka med det där lite. Tack så mycket för tipset