Send klasse over netværk

Tags:    java

Hej udviklere :-)

Nu har jeg programmeret java i snart 3 dage så er jo ved at være en verdensmand. Ej, men har fået lavet en lille server (en såkaldt echo-server tror jeg det hedder), som smider den anmodning med sendte tilbage til klienten.

Det er altså bare to _meget_ simple programmer på 2 af mine computere som snakker sammen over port 10000.

Nu kunne jeg godt tænke mig at jeg kunne sende en klasse fra min client til min server, og bagefter skulle serveren "køre" klassen - fx med kommandoen "new Klasse();". Så ville jeg faktisk være lykkelig :P

- Kan dette overhovedet lade sig gøre, eller skal man på en eller anden måde få sendt en .class eller .jar fil over som den på en eller anden måde kan køre?





5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Du skal se på ObjectOutputStream og ObjectInputStream. Alle de klasser hvis instanser du vil sende over en TCP forbindelse skal være Serializable (Implementere java.io.Serializable interfacet)

Du kan muligvis bruge følgende links:
http://java.sun.com/developer/technicalArticles/ALT/sockets/ - Specielt fra kode eksempel 6


Grov kode skitse (Hvor jeg ikke catcher de exceptions jeg skal):
Fold kodeboks ind/udKode 


Håber det hjælper



Indlæg senest redigeret d. 20.10.2007 16:48 af Bruger #1425
Såvidt jeg har forstået, vil du sende en komplet klasse-erklæring over netværket?

Såvidt jeg ved er dette ikke muligt i Java. Du kan dog tage et instans af et objekt og sende det, som Thomas viser det.



Man kan godt sende den, det er jo bare at sende .class filen, men det vil nok være nemmest hvis klassen implementerer et forudbestemt interface, herefter kan den instantieres vha. reflektion, og så typecastes til interface typen.



Som Thomas siger, klassen skal serializes, så kan den sendes.



Som Thomas siger, klassen skal serializes, så kan den sendes.


Yeah well...objekter som er instancieret af klassen kan sendes...ikke klassen selv.
Men i det hele taget er serialization lidt noget skidt og nærmest umuligt at bruge korrekt i større systemer, så protokoller baseret på XML eller lignende vil være bedre.



t