Projekt studencki - od czego zacząć

2018-12-18 19:53
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ć?

Pozostało 580 znaków

2018-12-19 08:34
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.

A co ja mogę na to powiedzieć >.< - Iothin 2018-12-19 08:56
Jakie biblioteki możesz użyć - Berylo 2018-12-19 09:03
"żadnych bibliotek dodatkowych komunikacyjnych" - Iothin 2018-12-19 09:05
To współczuję :) spotkajcie się w jakimś większym gronie i ustalcie taktykę. - Berylo 2018-12-19 09:07
@Berylo: jaki byłby sens wykorzystania gotowych bibliotek, skoro całym celem zadania jest poznanie jak działa ten protokół? ;-p - Patryk27 2018-12-19 09:25

Pozostało 580 znaków

2018-12-19 09:27
0

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

2, informatyka, sieciowa java - Iothin 2018-12-19 09:29

Pozostało 580 znaków

2018-12-19 09:39
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. :)

edytowany 1x, ostatnio: koszalek-opalek, 2018-12-19 09:39

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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