Programmierpraktikum 2

Übung #9

WS 98/99

 

Übung 9: Vergleich von Webseiten

Übung 9 [24]: Vergleich von Webseiten

Schreiben Sie ein Programm, das N Webseiten gleichzeitig aus N Dateien lädt und sofort vergleicht. Die Dateinamen werden als Kommandozeilenparameter übergeben. Im Fehlerfall (Exception) ist eine Fehlermeldung auszugeben, wobei jedoch zu beachten ist, daß nur der Vergleichs-Thread (und das Hauptprogramm) Ausgaben auf dem Bildschirm machen dürfen!

Die Webseiten sind zeichenweise in einem Buffer abzulegen, aus dem der Vergleichs-Thread (siehe unten) sich diese abholt. Wo dieser Buffer sich befindet (Downloader, Vergleicher oder ein eigenes Objekt) müssen Sie sich überlegen.

Nach jeweils 128 verglichenen Bytes geben Sie ein Zeichen '#' als Fortschrittsanzeige aus (ähnlich FTP).

Struktur des Programms:

  1. Hauptprogramm: Anzahl der Webseiten wird hier festgelegt, steuert alles. Darf erst beendet werden, wenn alle anderen Threads beendet sind.
  2. Vergleicher-Thread: Wartet bis von allen Downloadern mindestens ein Byte vorhanden ist und vergleicht diese dann. Dies ist (außer dem Hauptprogramm) der einzige Thread, der Ausgaben macht! Dies bedeutet, daß Fehler in den Lade-Threads an diesen Thread weitergereicht werden müssen (z. B. in Form einer Fehlermeldung), der sie ausgibt und danach das Vergleichen beendet (Rest der Daten muß gelesen werden!).
  3. N Lade-Threads: Laden eine bestimmte Datei und speichern die Daten in einen Buffer. Diese Threads müssen sich automatisch selbst eindeutig numerieren. Diese Nummer ist auch bei Fehlermeldungen zu integrieren.

Beachten Sie:


Last change: 14.12.98 by Michael Sonntag