T
tuxedo
Gast
Hi ihr,
ich habe mir einen kleine Client/Server Anwendung geshrieben die mittels Socket nachrichten austauscht. Beispielsweise meldet sich der Client eim Server mit seinem Namen und Passwort an oder er sendet eine Versionsinfo damit der Server pruefen kann ob die Client-Version noch up2date ist..
Hierfuer wollte ich kein RMI oder so nehmen, reine Socketverbindung mit serialisierung.
Dazu habe ich mit eine Message-Klasse geschrieben die einfach nur 2 Variablen kennt und keine Methoden:
Message-ID vom Typ String
Message-Object vom Typ Objekt
Message-Objekt enthaelt ein Objekt das von unterschiedlichen Typen sein. Zum Beispiel LoginMessage. LoginMessage kennt dann den Benutzernamen und das Passwort. In der Message-ID steht ein String der das Messae-Object identifiziert. Beispielsweise "LoginMessage".
Die Message wird serialisiert und durch die Leitung geschickt.
Der Empfaenger weiss dass NUR Message-Objecte kommen und kann das dann passend in eine Message casten. Dan liest er die Message-ID aus. Anhand dieser ID weiss er in welchen Typ er das Message-Object casten muss um die Nachricht zu verarbeiten.
Der Ansatz mag naiv sein, aber fuer den Anfang nicht schlecht. Da die Klasse Message immer gleich bleibt und mit erweiterung des "Protokolls" nur neue Klassen wie VersionsKontrolle etc. hinzukommen ist es einfach erweiterbar.
Was haltet ihr von diesem Ansatz und wo seht ihr moeglichkeiten diesen zu verbessern ohne auf RMI oder sowas umzusteigen.
gruss
Alex
P.S. ich hoffe ich konnt es einigermassen verstaendlich erklaeren...
ich habe mir einen kleine Client/Server Anwendung geshrieben die mittels Socket nachrichten austauscht. Beispielsweise meldet sich der Client eim Server mit seinem Namen und Passwort an oder er sendet eine Versionsinfo damit der Server pruefen kann ob die Client-Version noch up2date ist..
Hierfuer wollte ich kein RMI oder so nehmen, reine Socketverbindung mit serialisierung.
Dazu habe ich mit eine Message-Klasse geschrieben die einfach nur 2 Variablen kennt und keine Methoden:
Message-ID vom Typ String
Message-Object vom Typ Objekt
Message-Objekt enthaelt ein Objekt das von unterschiedlichen Typen sein. Zum Beispiel LoginMessage. LoginMessage kennt dann den Benutzernamen und das Passwort. In der Message-ID steht ein String der das Messae-Object identifiziert. Beispielsweise "LoginMessage".
Die Message wird serialisiert und durch die Leitung geschickt.
Der Empfaenger weiss dass NUR Message-Objecte kommen und kann das dann passend in eine Message casten. Dan liest er die Message-ID aus. Anhand dieser ID weiss er in welchen Typ er das Message-Object casten muss um die Nachricht zu verarbeiten.
Der Ansatz mag naiv sein, aber fuer den Anfang nicht schlecht. Da die Klasse Message immer gleich bleibt und mit erweiterung des "Protokolls" nur neue Klassen wie VersionsKontrolle etc. hinzukommen ist es einfach erweiterbar.
Was haltet ihr von diesem Ansatz und wo seht ihr moeglichkeiten diesen zu verbessern ohne auf RMI oder sowas umzusteigen.
gruss
Alex
P.S. ich hoffe ich konnt es einigermassen verstaendlich erklaeren...