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.
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
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.