• Nie Znaleziono Wyników

a) Uruchom klienta echa i sprawdź jego działanie z serwerem echa dostępnym w xinetd

N/A
N/A
Protected

Academic year: 2021

Share "a) Uruchom klienta echa i sprawdź jego działanie z serwerem echa dostępnym w xinetd"

Copied!
1
0
0

Pełen tekst

(1)

Programowanie aplikacji klient-serwer Studia dzienne, 2006/2007 Laboratorium 5.

UDP

1. Opracuj wersję klienta i serwera echa wykorzystującą protokół UDP.

a) Uruchom klienta echa i sprawdź jego działanie z serwerem echa dostępnym w xinetd. Wykorzystaj funkcje sendto i recvfrom.

b) Uruchom własny serwer echa. Wykorzystaj funkcje sendto i recvfrom.

Co się będzie działo, jeśli klient zostanie uruchomiony, podczas gdy serwer nie będzie jeszcze działał?

Co się będzie działo, jeśli klient przyśle komunikat zanim serwer wykona funkcję bind?

Co się będzie działo, jeśli klient przyśle komunikat zanim serwer wykona funkcję recvfrom?

2. Opracuj wersję klienta i serwera standardowej usługi time w wersji UDP (opis usługi time jest zawarty w RFC 868 - www.rfc-editor.org). Klient w przypadku nie otrzymania komunikatu po upływie określonego czasu ma ponowić kilkakrotnie zapytanie i dopiero wtedy zakończyć pracę z odpowiednim komunikatem.

3. Zmodyfikuj zadanie 2 tak, aby klient wysyłał zapytanie o czas do dwóch serwerów, wyświetlał pierwszą otrzymaną odpowiedź z informacją od którego serwera pochodzi.

4. Zmodyfikuj zadanie 2 tak, aby serwer obsługiwał zarówno połączenie UDP jak i połączenie TCP.

5. Zmodyfikuj zadanie 2, tak aby powstał serwer rozgłaszający czas. Klient nasłuchuje na określonym porcie i po otrzymaniu aktualnego czasu wyświetla go na ekranie z informacją, od którego serwera czasu otrzymał dane.

Zadanie domowe

6. Napisz prostą wersję serwera nadzorującego licencje, opartego o wymianę datagramów. Serwer ogranicza liczbę programów, które możne uruchomić jednocześnie klient. Klient zgłasza się do serwera i jeśli limit nie został przekroczony, dostaje od niego bilet. Bilet jest zwracany do serwera wtedy, kiedy klient kończy wykonywanie.

Jeśli limit uruchomionych programów został już osiągnięty, klient otrzymuje komunikat informujący go o tym - musi wtedy zakończyć działanie. Dla uproszczenia załóżmy, że procesy serwera i klientów działają na jednej maszynie. Opracuj:

a) protokół; przykład:

Przydzielenie biletu:

Klient: HELO id-procesu

Serwer: TICK id-biletu lub FAIL Oddawanie biletu:

Klient: GBYE id-biletu Serwer: THNX komuniakt b) program kliencki

c) program serwera.

7. Rozbuduj program z zadania 6

Rozwiąż problem odzyskiwanie biletów od klientów, którzy zakończyli się bez zwrócenia biletu. W jaki sposób stwierdzić, że program kliencki został zakończony?

Rozwiąż problem restartu serwera. Rozważ klientów obsłużonych podczas poprzedniego uruchomienia serwera - powinni oni nadal mieć prawo do wykonywania i być brani pod uwagę podczas sprawdzania limitu.

Dla powyższych zagadnień:

a) opracuj algorytm b) zmodyfikuj program

Co należałoby uwzględnić, jeśli chcielibyśmy zbudować rozproszoną wersję programu nadzorującego licencje?

Cytaty

Powiązane dokumenty

Opiat’, narodnyje witii znajdował się, jak to usiłowaliśmy wykazać, w rażącej sprzeczności z innymi jego wypowiedziami politycznymi tego okresu oraz ze sposobem

Język SGML jest służy do tworzenia dokumentów, opisujących strukturę dokumentu. HTML jest językiem znaczników

Przykład aplikacji typu Java Application z modelem obiektowym opartym na klasach zdefiniowanych przez użytkownika oraz klasach typu Controller technologii JPA –

1.2.. 3) wykonanie architektury trójwarstwowej RMI – pliki RMI_Obiekt_Skel.class oraz RMI_Obiekt_Stub.class za pomocą

Recenzowana książka składa się – oprócz wprowadzenia, wykazu literatury i podsumo- wania w języku angielskim – z siedmiu rozdziałów, w których omówione zostały kolejno:

For this purpose, samples of AA6063 aluminum alloy are deformed up to 10 passes using ECAP and the evolution of microstructure, texture and dislocation density is investigated..

Opracuj klienta standardowej usługi time w wersji TCP (opis usługi time jest zawarty w RFC 868 - www.rfc- editor.org).. Niech korzysta on z serwera time uruchomionego za