Ein leichtgewichtiges, dezentral organisiertes Chatprogramm für Text- und Bildnachrichten im lokalen Netzwerk (LAN). Nutzbar entweder via Kommandozeilen-Interface (CLI) oder grafischer Benutzeroberflaeche (GUI). Entwickelt im Rahmen eines Hochschulprojekts an der Frankfurt UAS auf Basis des Simple Local Chat Protocol (SLCP).
- Versenden und Empfangen von Nachrichten im lokalen Netzwerk
- Versenden von Nachrichten an alle im Netzwerk
- Direktnachrichten
- CLI oder GUI Oberfläche
- Bearbeiten der config.toml während Nutzung der Software
- Autoreply Modus (aktivierung durch Timer oder manuell)
- Sprache: Python 3.8+
- Entwicklungsumgebung: Visual Studio Code
- Bibliotheken:
socket(UDP/TCP)threading/queue(Nebenläufigkeit & IPC)toml(Laden/Speichern der Konfiguration)tkinter(optionales GUI)os,sys,time(System- und Timing-Utilities)
-
Python 3.8 oder höher installieren
Stelle sicher, dass Python korrekt installiert ist:
python --version -
Abhängigkeiten installieren
Installiere die benötigten Bibliotheken:
pip install tomlFür die GUI wird zusätzlich tkinter benötigt:
- unter Ubuntu:
sudo apt install python3-tk
- unter Ubuntu:
-
Programm starten
-
GUI-Version:
python gui.py -
CLI-Version:
python main.py
-
-
Hinweise
- Die Konfiguration wird aus der Datei config.toml gelesen bzw bei Programmstart angepasst.
- Im CLI können sämtliche Funktionen über Befehle ausgeführt werden (siehe Abschnitt „CLI-Befehle“).
- /join - Chat beitreten (JOIN senden)
- /who - Aktive Nutzer abfragen (WHO senden)
- /msg - Nachricht an alle senden
- /pm - Private Nachricht senden
- /img - Bild privat senden
- /show_config - Aktuelle Konfiguration anzeigen
- /edit_config - Konfiguration bearbeiten (z.B. handle)
- /quit - LEAVE senden & beenden
- main.py - Einstiegspunkt, startet alle Komponenten & lädt Konfiguration.
- cli.py - Kommandozeileninterface, verarbeitet Nutzerbefehle.
- gui.py - Einfache grafische Benutzeroberfläche.
- chat_client.py - Versendet Nachrichten und Bilder (TCP).
- chat_server.py - Empfängt Nachrichten und Bilder (TCP).
- discovery.py - Discovery-Dienst (UDP, Port 4000) zur Nutzererkennung.
- ipc_handler.py - Interprozesskommunikation & Datenverwaltung.
- config.toml - Zentrale Konfigurationsdatei (Username, Ports, etc.).
