background image

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.