• Keine Ergebnisse gefunden

Aufgabe 2

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe 2"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fachhochschule Niederrhein Soft- und Hardware-Systeme Prof. Dr. Rethmann FB Elektrotechnik/Informatik Praktikum SS 2006 Prof. Dr. Ueberholz

Aufgabe 2: Nachrichten-basierte Kommunikation

Lernziele Vertiefen der Kenntnisse ¨uber TCP-basierte Kommunikation, nebenl¨aufiger Programmierung mittels Threads, Synchronisation und der Programmiersprache C.

Aufgabe Es soll ein Server implementiert werden, der die Anfragen GET und COMPUTE bearbeitet. Client und Server kommunizieren ¨uber TCP-Sockets. Verwendetes Protokoll:

GET fordert den Inhalt der Datei an, die als Parameter ¨ubergeben wird (siehe HTTP).

Beispiel: GET /pfad/text

COMPUTE berechnet die Formel, die als Parameter angegeben ist. Zur einfachen Be- rechnung sei die Formel in Postfix-Notation angegeben und auf die arithmetischen Operationen Addition, Subtraktion, Multiplikation und Division beschr¨ankt.

Beispiel: COMPUTE 3 7 + 5 * 2 -entspricht (3 + 7)∗5−2

In beiden F¨allen wird ein Strom von Zeichen (char) vom Server als Antwort gesendet.

Implementieren Sie einen Dispatcher, der die Anfrage auswertet und den entsprechen- den Dienst als eigenen Thread startet. Soll der Server weitere Dienste unterst¨utzen, muss nur der Dispatcher erweitert werden und der entsprechende Dienst implementiert werden (modularer Aufbau).

Jede Anfrage wird in einem eigenen Thread bearbeitet, damit der Server unmittelbar auf weitere Anfragen reagieren kann. Damit nicht bei jeder Anfrage ein Thread erzeugt werden muss, stellen Sie einen Pool von Threads bereit, aus dem bei einer Anfrage ein Thread ausgew¨ahlt wird.

Schreiben Sie als Client ein Testprogramm, dass mehrere Threads erzeugt, die mit dem Server kommunizieren. Starten Sie mehrere Instanzen des Testprogramms, so dass gleichzeitig mehr Anfragen beim Server eintreffen, als dessen Thread-Pool groß ist.

Testat Zum Testat m¨ussen Sie obige Programme vorlegen und erkl¨aren k¨onnen.

Referenzen

ÄHNLICHE DOKUMENTE

Welche der folgenden Elemente (bzw. Ressourcen) geh¨oren bei einem Betriebssystem, das mehrere Threads pro Prozess unterst¨utzt, zum Prozeß (sind also allen Threads des

• boolean tryAcquire(int permits, long timeout, TimeUnit unit) permits Freisignale nehmen (blockierend mit Timeout). •

Lehrstuhl für Connected Mobility Fakultät für Informatik Technische Universität München.. November 2020 Hinweis: Mit * gekennzeichnete Teilaufgaben sind ohne Lösung

Milchviehhaltung Iden Frau Gamperle Tierhaltung

Der Beirat fordert, dass SKUMS und die BIMA unverzüglich öffentlich Aufklärung über die geplante Sanierung des Verladebahnhofs im Rahmen einer Beiratssitzung zu

Objekte vom Typ Thread sind Prozesse, die parallel ablaufen k¨onnen wichtige Methoden:.. • run() , um den Prozess laufen

UML-Zustandsdiagramm: Java 6 Thread States and Life Cycle. Franz Kohnle Seite 1 von

 read überträgt Inhalt der Master-Kopie einer Variablen in die Arbeitskopie des Threads für eine spätere load Aktion.  write überträgt einen Wert vom Arbeitsspeicher des