Klasse übermitteln

Guten Tag allerseits

Ich stehe vor einer Aufgabe von der ich noch nicht richtig weiss wie ich sie angehen soll…

Ich habe einen Server der Daten von einem Fahrzeug sammelt und Befehle annehmen muss von seinen Clients. Die Daten haben alle möglichen Typen, von String über int und Double. Sogar Listen sind möglich.

Nun habe ich mir gedacht dass ich eine Klasse schreibe “send” in der ich sämtliche Daten sammle um diese dann zu schicken. Ist es möglich eine ganze Klasse zu verschicken über eine Socket Verbindung?

Ich würde auf der Clientseite die genau gleich Klasse haben in der die Daten geschrieben werden.

Vielen Dank schonmal für eure Inputs

Mit freundlichen Grüssen

Na klar, nennt sich Objectstream

Java Socket Server-Client Read Write Example

Galileo Computing :: Java ist auch eine Insel – 17.10 Persistente Objekte und Serialisierung

ObjectInputStream and ObjectOutputStream from Socket : Socket « Network Protocol « Java

Wenn deine Klasse das Interface Serializable implementiert, kannst du Objekte der Klasse mit ObjectOutputStream senden.

Vielen Dank schon mal für die schnellen antworten

Ich habe zwei Java Projekte, eines der Server das andere der Client. In beiden Projekten würde ich die Klasse genau gleich aufbauen.

Geht das?

mit Serialisierungs-Id geht das grundsätzlich, wobei nur zu hoffen ist dass gleiche Id und gleicher Klassenname auch gleichen Aufbau auf allen Seiten impliziert,
für API-Klassen wie String gelten grundsätzlich die gleichen Gedanken,

(je nach Geschmack) besser oder zumindest anders ist ein einzelnes Projekt für gemeinsame Klassen, in den beiden anderen über IDE eingebunden oder als Jar-Library vorliegend,
exakt dieselben Klassen,

zur Sicherheit dann evtl. ohne Serialisierungs-Id, um Fehler wie unterschiedliche Programmversionen
(allein schon Client mit neukompilierter gemeinsamer Klasse bei noch laufenden Server mit alten Stand)
zu erkennen, halte ich für besser

RMI Remote Method Invocation – Wikipedia kann man langsam auch erwähnen

Exakt das waren meine Bedenken bei der Serialisierung.

Das habe ich auch in meinen Gedanken gehabt, jedoch nicht getraut zu schreiben, da ich dachte das sei nicht praktikabel.

Bis heute Abend habe ich das ausprobiert. Vielen Dank schonmal

Nimm lieber ein und dieselbe Klasse. Es ist afaik in allen IDEs möglich andere Projekte zu importieren oder Abhängigkeiten darzustellen.

Das würde ich dir auch raten. Alles andere schreit danach, irgendwann subtile Fehler produzieren zu können. Darüber hinaus ist doppelter Code immer mit einem äußerst schlechten Gefühl verbunden - oder sollte es sein.

Ich habe nun ein projekt erstellt das den transfer mit einer klasse handelt. Dieses Projekt importiere ich nun in den Server und Im Client. Dies funktiert wie erwünscht.

Vielen Dank dafür