Für Slides und Code Beispiele, siehe Lektion 9
Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Prüfen Sie die vorhandenen Forks, um das Repository für Ihre Klasse zu finden.
- Analysieren Sie diese Socket Beispiele bestehend aus:
- Header us_xfr.hTLPI, Server us_xfr_sv.cTLPI, Client us_xfr_cl.cTLPI.
- Header ud_ucase.hTLPI, Server ud_ucase_sv.cTLPI, Client ud_ucase_cl.cTLPI.
- Builden Sie die Programme, und lassen Sie sie laufen.
- Zeichnen Sie Sequenzdiagramme mit User, Client, Server, das den Ablauf / übertragene Daten zeigt.
- Analysieren Sie dieses Socket Beispiel bestehend aus:
- Header i6d_ucase.hTLPI, Server i6d_ucase_sv.cTLPI, Client i6d_ucase_cl.cTLPI.
- Builden Sie die Programme, und lassen Sie sie laufen:
$ ./i6d_ucase_sv & $ ./i6d_ucase_cl ::1 hello
- Schreiben Sie einen Web Client my_http_client.c, der folgenden HTTP Request an den Host tmb.gr, Port 80 sendet, die Antwort liest, und auf stdout ausgibt:
"GET /syspr HTTP/1.1\r\n" "Host: tmb.gr\r\n" "\r\n"
- Hinweis: HTTP nutzt TCP als Transport-Protokoll.
- Länge der Antwort ist im Content-Length Header.
- Schreiben Sie einen Web Server my_http_server.c, der einkommende HTTP Requests auf Port 8080 liest und folgende Antwort zum Client / Browser sendet:
"HTTP/1.1 200 OK\r\n" "Connection: close\r\n" "Content-Length: 5\r\n" "\r\n" "hello"