# Verteilte_Systeme Bearbeitung Prüfungsvorleistung für Verteilte Systeme # Syslog-Logging-System (RFC 5424) Dieses Projekt implementiert einen Syslog-Server und einen Test-Client auf Basis von UDP. Es beinhaltet eine automatische Service-Discovery. ## Projektstruktur & Klassen * **`pom.xml`**: Die Maven-Konfigurationsdatei. Sie verwaltet Abhängigkeiten und die Java-Version. * **`justfile`**: Automatisierungsskript für Windows (PowerShell) und Linux, um Befehle wie `just clean` oder `just exec` zu nutzen. * **`vs.SyslogServer`**: Der Hauptdienst. Er startet zwei parallele Threads: * **Syslog-Service**: Empfängt Log-Nachrichten auf Port 514. * **Discovery-Service**: Antwortet auf Broadcast-Anfragen auf Port 8888. * **`vs.SyslogClient`**: Test-Client, der den Server via Broadcast sucht und eine standardkonforme Nachricht sendet. * **`vs.SyslogMessage`**: Repräsentiert eine Nachricht gemäß RFC 5424. * **`vs.AsciiChars` / `vs.StructuredData`**: Hilfsklassen zur Validierung und Formatierung von Zeichenketten gemäß Spezifikation. ## Funktionsablauf (Service Discovery) 1. **Broadcast**: Der Client sendet ein UDP-Paket an `255.255.255.255:8888`. 2. **Antwort**: Der Server empfängt den Broadcast und sendet ein leeres UDP-Paket an den Client zurück. 3. **Identifikation**: Der Client liest die IP-Adresse des Absenders aus dem Antwort-Paket aus. 4. **Logging**: Der Client sendet die eigentliche Syslog-Nachricht direkt an die ermittelte IP auf Port 514. ## Ausführung * Server starten: `just exec SyslogServer` * Client starten: `just exec SyslogClient` * Aufräumen: `just clean`