verschiedene Serialisierte Objekte identifizieren?

Behnke

Mitglied
Hallo Zusammen,

hab schon viel gegoogelt und ich bin Anfänger in Netzwerkprogrammierung.
Unsere Aufgabe ist aktuell ein Netzwerkspiel zu schreiben und ich beschäftige mich mit der Kommunikation. Es funktioniert, ich kann ein Objekt über ObjectInput/OutputStream verschicken und empfangen.

Meine Frage die sich mir stellt, wozu ich keine Antwort gefunden hab:
Wie finde ich auf Client/Server-Seite raus um welches Objekt es sich handelt?

Bis jetzt hab ich einfach Zwangskonvertiert, da es ja nur ein Objekt war.

Java:
Auto = (Auto)clientInputStream.readObject();

aber ich habe ja vor, darüber viele verschiedene Objekte zu verschicken. Wie find ich auf der anderen Seite wieder raus von welchem Typ die waren?

Ich meine mit instanceof() oder clientInputStream.readObject().equals(obj) für jedes Objekt eine If-Abfrage oder was ist da die elegante Lösung?

Habt ihr meine Frage verstanden? Ich hoffe doch!
Vielen Dank!
 

tuttle64

Bekanntes Mitglied
Jedes Objekt in Java bietet die Methode getClass() an, welche den Namen seiner Klasse zurückgibt. Damit sollte es ermittelbar sein, um welche Klasse es sich handelt. Wenn Du nur den Namen der Klasse benötigst, kannst Du auch getClass().getSimpleName() benutzen.
 
Zuletzt bearbeitet:

FArt

Top Contributor
Im Prinzip ist das aber völlig unnötig. Beim Standardmechanismus wird ein Objekt (und seine Attribute usw.) in einer festen Reihenfolge serialisiert, und auf dem Empfängerseite deserialisiert.
Wenn du selber eingreifst, realisierst du eine Art Kommunikationsprotokoll. Wenn du das für dich definierst, musst du auch nicht raten, was für ein Objekt gerade ankommt, sondern es muss ja dem Protokoll folgen.
Für eine Art von RPC würde ich kein eigenes Protokoll entwerfen sondern ein bestehendes hernehmen. Da werden in der Regel die Metainformationen (auf wen wird welche Methode mit welchen Parametern aufgerufen) extra mitgeschickt.
 

Behnke

Mitglied
in einer festen Reihenfolge serialisiert, und auf dem Empfängerseite deserialisiert.

Kann ich mir im Moment absolut nicht vorstellen wie du das meinst. Habt ihr vielleicht ein Link für mich der mir weiterhelfen könnte? Mich interessiert wie so ein Protokoll aussieht.

@tuttle64: getClass() hört sich nach einer Möglichkeit an, aber sieht auch so unpraktisch aus. Das wird ja voll viel Code nur um zu prüfen was da an kommt. Kann Java sowas nicht "automatisch"?

Gruß Behnke
 

FArt

Top Contributor
Kann ich mir im Moment absolut nicht vorstellen wie du das meinst. Habt ihr vielleicht ein Link für mich der mir weiterhelfen könnte? Mich interessiert wie so ein Protokoll aussieht.

@tuttle64: getClass() hört sich nach einer Möglichkeit an, aber sieht auch so unpraktisch aus. Das wird ja voll viel Code nur um zu prüfen was da an kommt. Kann Java sowas nicht "automatisch"?

Gruß Behnke

java serialisation - Google-Suche

Wunder dich nicht darüber, was Java nicht automatisch kann oder doch... dein Ansatz ist daneben. Das kommt vermutlich daher, dass du mit Halbwissen versucht hast ein Problem zu lösen. Du bist auf ein Ergebnis gekommen, welches aber wiederum Probleme aufwirft, mit denen du dann hier gelandet bist.

Beschreibe was du eigenlich machen möchtest, dann muss man dir nicht bei der seltsamen Umsetzung deines Kommunikationsprotokolls helfen, denn so wird das nichts sinnvolles.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F GSON wenn das Json verschiedene Klassen enthält Netzwerkprogrammierung 1
S User im Chatprogramm verschiedene Farben Netzwerkprogrammierung 1
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
B Viele verschiedene E-Mails an unterschiedliche Empfänger schnell versenden? Netzwerkprogrammierung 8
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
F Verschiedene Datentypen senden Netzwerkprogrammierung 4
T Inputstream -> verschiedene Objekte lesen Netzwerkprogrammierung 3
W RMI Verschiedene Unterobjekte trotz selbem Remote Object Netzwerkprogrammierung 2
P Verschiedene Daten über einen Stream Netzwerkprogrammierung 4
Luma Verschiedene Frage zu nem Netzwerkprog Netzwerkprogrammierung 6
B Verbindung über verschiedene IPs Netzwerkprogrammierung 3
F HTTP Serialisierte Objekte aus Datei von Server Netzwerkprogrammierung 1
T JSON-Objekte richtig parsen Netzwerkprogrammierung 8
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
A RMI RMI - Thread Objekte übertragen und auf anderer Machine weiterlaufen lassen Netzwerkprogrammierung 0
C List Deserialisierung entfernt Objekte Netzwerkprogrammierung 2
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
V Socket Objekte werden nicht aktualisiert Netzwerkprogrammierung 2
S Socket Über UDP Objekte verschicken Netzwerkprogrammierung 9
B Eigene Objekte per RMI übergeben Netzwerkprogrammierung 2
S Kapselung der Netz-Objekte Netzwerkprogrammierung 3
T Objekte im NIO unblocking mode versenden Netzwerkprogrammierung 11
C Socket ObjectInputStream liest nur Objekte der jeweiligen Programminstanz Netzwerkprogrammierung 5
G Frage zu Servlets und deren Objekte + Bilder in Servlets anzeigen? Netzwerkprogrammierung 11
G Objekte per TCP verschicken + Thread Netzwerkprogrammierung 4
T Laufen Objekte, die vom Cajo-Server geliefert werden, lokal auf dem Client? Netzwerkprogrammierung 4
I Objekte über das Netzwerk Netzwerkprogrammierung 5
M Messenger - String oder Objekte Netzwerkprogrammierung 4
S Netzwerk und Objekte Netzwerkprogrammierung 5
S RMI 1.) Entfernte Objekte "Zwischenspeichern" 2.) Threadsicherheit Netzwerkprogrammierung 2
T rmi ssl zu große Objekte übergeben -> Exception Netzwerkprogrammierung 10
A Konflikt: Blocking und Non-Blocking bei Objekte versenden Netzwerkprogrammierung 4
N RMI und Datenbank Objekte Netzwerkprogrammierung 3
P Objekte über DatagramSocket versenden Netzwerkprogrammierung 12
R Mittels BufferedReader Objekte lesen? Netzwerkprogrammierung 5
M Objekte senden zwischen Java und PHP mit SOAP Netzwerkprogrammierung 9
A Objekte in übergebenen Objekten mit WebServices? Netzwerkprogrammierung 6
A RMI wie kann ich objekte übergeben? Netzwerkprogrammierung 5
P Serialialiserte Objekte übers Netzwerk verschicken Netzwerkprogrammierung 9
S Objekte zwischen Client und Server über Sockets senden Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben