MihaelMattes Blatt10
A
Systemnahe Software (II)
im Sommersemester 2009
Abgabetermin:08.Juli2009
Hinweis: Sokets
VerwendenSieinallenfolgendenAufgabendieSoket-FunktionenfürNetzwerkkommunikation.
38 HTTP-Client im Selbstbau (11 Punkte)
Shreiben Sie einen kleinen HTTP-Client h., der einfahe GET-Anfragen in HTTP/1.1
durhführen kann. Falls dieAnfrageerfolgreih ist,sollaufder Standardausgabe der Body-
TeilderAntwortausgegebenwerden.
Falls dieAnfrageniht erfolgreihist,soll h.den Fehler (ggf.mitHTTP-Statusode)
ausgebenundsihmiteinempassendenExitstatusbeenden.
DiegewünshteWebseitesollh.aufderKommandozeileentgegennehmen.Besonderhei-
tenimURL,wiez.B.BenutzernamenundKennwörteroderdieAngabeeinesanderenPorts
alsPort80mussh.nihtbeherrshen.
39 Erweiterung des HTTP-Clients (3 + 1 Punkte)
ErweiternSieh.zuhi. (HCimproved)undbauenSiezweiweitergehende Dingeein.
ErstenssollenAnfragen,dieeinen Umleitungs-Statusodeliefern,mitder korrektenAdresse
wiederholtwerdenahtenSiehierbeiauffalshkongurierteServer,diedenClientmögliher-
weiseimKreisendlosumlenken!ZweitenssollauhdieAngabeeineralternativenPortnummer
imURLunterstütztwerden.
40 Zeitserver mit Sokets (4 Punkte)
ShreibenSieeinProgrammsokettime.,dasanalogzuAufgabe36(unddemSkript)aufei-
nervonIhnenfestgelegtenTCP-Portnummerlausht.VerwendenSiediesmalallerdingsSokets.
warten,bevordieVerbindungbeendetwird.
41 Zeitlient (3 Punkte)
ShreibenSieeinenZeitlienttime.,dersihzueinemZeitserverausdervorigenAufgabe
verbindet,dieempfangeneZeitausgibtunddannnaheinerzufälligenZeitspannezwishen5
und20Sekundendenquit-Befehlsendet.
42 Conurreny im Zeitserver (8 Punkte)
In dievorigen Aufgabe müssenweitereClientswarten,bisderaktuellverbundeneClientdie
Verbindungbeendetbzw.quiteingibt.UmdieseunnötigeWartezeitzuvermeiden,mussder
Serverumgebautwerden.
Erweitern Sie also das Programm aus der vorigen Aufgabe zu einem neuen Programm
onurrenttime.,welhesalsonurrentservermehrereAnfragenparallelbearbeitenkann.
BeahtenSieauhhierdieRihtlinienzumUmgangmitfork().
VielErfolg!