• Nie Znaleziono Wyników

Programowanie aplikacji klient-serwer Studia zaoczne, 2006/2007

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie aplikacji klient-serwer Studia zaoczne, 2006/2007"

Copied!
1
0
0

Pełen tekst

(1)

Programowanie aplikacji klient-serwer Studia zaoczne, 2006/2007 Laboratorium 4.

Pobierz plik lab4.tar.gz i rozpakuj go..

1. Zmodyfikuj program serwer1.c tak, aby można było obsługiwać współbieżnie klientów:

a) wersja 1: serwer wieloprocesowy (jeden proces obsługuje jednego klienta), b) wersja 2: serwer wielowątkowy (jeden wątek obsługuje jednego klienta).

c) wersja 3: serwer multipleksacyjny (funkcja select, serwer przełącza się miedzy klientami).

Zadanie domowe.

2. Opracuj prosty serwer iteracyjny WWW. Serwer ten ma wykonywać następujące zadania:

- jeśli przesłana nazwa jest katalogiem, przesłać do klienta zawartość tego katalogu - jeśli przesłana nazwa jest plikiem zwykłym, przesłać do klienta zawartość tego pliku - jeśli żadną z powyższych, odesłać komunikat o błędzie

Wykorzystaj uproszczony serwer HTTP z pliku lab4.tar.gz.

Przetestuj działanie serwera za pomocą polecenia telnet i dowolnej przeglądarki.

Uproszczony protokół implementowany przez serwer:

Klient:

GET nazwa_pliku HTTP/1.0 <CRLF>

opcjonalne argumenty <CRLF>

<CRLF>

Serwer:

HTTP/1.0 kod-statusu komunikat dodatkowe argumenty

<CRLF>

przesłana zawartość

Serwer implementuje tylko metodę GET. Uwzględnij następujące kody odpowiedzi:

HTTP/1.0 200 OK <CRLF>

HTTP/1.0 404 Not found <CRLF>

HTTP/1.0 501 Not implemented <CRLF>

3. Zmodyfikuj opracowany program tak, aby serwer działał jako:

a) serwer wieloprocesowy (jeden proces obsługuje jednego klienta) b) serwer wielowątkowy (jeden wątek obsługuje jednego klienta)

Cytaty

Powiązane dokumenty

Streszczenie: W referacie omówiona zostanie nietypowa droga pozyskiwania danych obrazowych za pomocą systemu agentowego i agenta który jest uruchomionym procesem przesyłanym

Zmodyfikuj program klient.c tak, aby można było posługiwać się adresem IP lub nazwą serwera, numerem portu lub nazwą usługi.. Zmodyfikuj program serwer.c tak, aby można

b) wersja 2: serwer wyprzedzająco wieloprocesowy (tworzona jest pula procesów, które są następnie przydzielane do klientów, jeden proces obsługuje jednego klienta). c) wersja

ad a) Uruchom serwera i klienta. Wpisz jeden wiersz tekstu. Po otrzymaniu odpowiedzi z serwera, usuń proces serwera. Czy w procesie klienta coś się dzieje? Jaki jest stan

gdzie root_key.pem będzie zawierać klucz prywatny zaś root_request.pem żądanie certyfikatu. b) Wygeneruj certyfikat główny:. $ openssl x509 –req –in root_request.pem

Argumenty -f oraz -t pozwalają nam określić ile procesów potomnych oraz wątków ma utworzyć serwer. Przy czym jeśli określimy, że ma być uruchomionych N potomków, to serwer

W związku z tym łączny czas wykonania przez jeden wątek zlecenia wymagającego operacji dyskowej wynosi 1*(8ms + 60ms) = 68ms, gdyż dopiero w 68ms po otrzymaniu takiego zlecenia

Każdy z klientów po wystartowaniu w niezależnym wątku tworzy gniazdo typu Socket znając port i nazwę hosta, na którym znajduje się serwer oraz tworzy