Platformy Technologiczne
Laboratorium 3
Java: Gniazdka
Wykorzystać aplikację zaimplementowaną w ramach poprzedniego laboratorium (Swing) w roli
klienta, który będzie wskazywał pliki do przesłania. Plik wybierany jest z komponentu
JTree
, następnie
po kliknięciu przycisku “Wyślij” wysyłany do aplikacji serwera, napisanej także z wykorzystaniem
biblioteki Swing. Aplikacja serwera zapisuje odebrane pliki w zdefiniowanym katalogu.
–
przesyłanie jednego pliku (1pkt),
–
pasek postępu, gdzie postęp będzie aktualizowany z wykorzystaniem klasy
SwingWorker
(przy
jej pomocy ma zostać wykonany wątek kopiujący) (1pkt),
–
przesyłanie kilku plików (wybór z kontrolki
JTree
kilku plików) – dla każdego pliku osobny
wątek kopiujący, pliki wysyłane sekwencyjnie (1pkt),
–
przesyłanie kilku plików równoległe – z paskami postępu dla każdego pliku (1pkt),
–
Wspólny pasek postępu aktualizowany przez wszystkie wątki (1pkt).
Uwagi:
–
po stronie serwera należy wykorzystać jedną instancję klasy
ServerSocket
w celu zestawiania
połączeń,
–
po stronie serwera każdy klient musi być obsługiwany w oddzielnym wątku,
–
aktualizacja pasków postępu musi się wykonywać w wątku obsługi zdarzeń (
SwingWorker
udostępnia metody, których wykonanie następuje w wątku obsługi zdarzeń),
–
podczas laboratorium można korzystać z kodu z drugiego laboratorium przy czym wszystkie
polecenia z tej instrukcji muszą zostać wykonane podczas laboratorium,
–
zamiast wykonywać osobno przesyłanie szeregowe i równoległe można wykonać jedynie
przesyłanie równoległe za 2pkt.