tamberg / fhnw-syspr-work-09

FHNW Modul System-Programmierung (syspr) Hands-on Lektion 9

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

System-Programmierung

Hands-on zu Lektion 9

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.

a) UNIX Domain Sockets, 15'

b) Internet Domain Sockets, 15'

  • 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

c) Web Client, 1h+

  • 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.

d) Web Server, 1h+

  • 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"

About

FHNW Modul System-Programmierung (syspr) Hands-on Lektion 9