Projekt studencki - od czego zacząć

0

Cześć!
Mam do napisania projekt z Javy, dokładniej klienta Torrent ->

Wymiana list udostępnianych plików między hostami -  chcemy wiedzieć gdzie (na jakim hoście) jakie pliki się znajdują, wraz z ich sumami kontrolnymi MD5 – wersje (H2H, MH, TCP)
Przesyłanie plików typu PULL – ściągamy z wybranego hosta plik o zadanej nazwie - wersje (H2H, MH, TCP) 
Przesyłanie plików typu PUSH – wrzucamy na wybrany host pliku o zadanej nazwie – wersje (H2H, MH, TCP) 
Wznawianie transmisji pliku w przypadku jej przerwania lub rozłączenia – wersje (H2H, MH, TCP) 
Ściąganie tego samego pliku (ale różnych jego części) z wielu hostów jednocześnie – wersja (MH, TCP) 
Dodatkowo aplikacja powinna pracować pod nadzorem protokołu UDP 

I nie mam zielonego pojęcia jak się za to zabrać. Czy ktoś jest w stanie wskazać mi jakieś materiały/wypisać krok po kroku co mam robić?

5

Zawsze dziwili mnie wykładowcy, którzy dawali takie zadania dla początkujących w programowaniu studentów co zawsze kończyło się tym, że kilka osób zrobiła i "pomogła" reszcie.

0

@Iothin: A na którym to roku, jakiego kierunku i na jakim przedmiocie to dostałeś?

0

Widzisz, @Berylo bo to nie jet zadanie dla początkujących. @Iothin, powinieneś na tyle znać już Javę, że sobie chyba wyobrażasz ten program -- używałeś kiedyś torrentów? :)

Więc ja bym:

  1. przeczytał specyfikację protokołu torrentowego, a jak w ogóle nie masz pojęcia, to zacznij od https://en.wikipedia.org/wiki/BitTorrent i https://en.wikipedia.org/wiki/Torrent_file
  2. zaprojektował struktury danych do przechowywania wszystkiego, co potrzeba programowi do działania (poszczególne pliki, żądania, status ściągnięcia itp.);
  3. zaprojektował jakiś plik konfiguracyjny/przechowujący status pomiędzy kolejnymi uruchomieniami (jakaś serializacja może po prostu);
  4. podzielił pracę na wątki/podprogramy, z których każdy odpowiadałby za daną czynność

Tyle na początek i niekonkretnie. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0