webForumDet fria alternativet

ObjectInputStream/ObjectOutputStream

8 svar · 375 visningar · startad av dho

dhoMedlem sedan aug. 20022 027 inlägg
#1

Hej!

Har lite problem med en server- och klient-del som jag vill skicka lite data mellan. Jag har använt mig av ObjectInputStream och ObjectOutputStream. Det fungerar alldeles utmärkt att tex skicka enstaka variabler fram och tillbaka med output.writeObject(). Problemet är att jag skulle vilja skicka flera variabler från klientdelen till serverdelen på samma gång. Hur fixar man det lättast? Jag har letat efter lite bra online-referenser som förklarar lite mer ingående hur man använder sig av ObjectInputStream och ObjectOutputStream men inte hittat speciellt mycket. Kan någon tipsa om något bra?

ViktorMedlem sedan aug. 20021 752 inlägg
#2

Kan du inte packa alla variabler du ska skicka i en stack, hashtable eller vector? Om du vet vilken ordning de har så ska det väll inte vara omöjligt.

/Viktor

dhoMedlem sedan aug. 20022 027 inlägg
#3

Viktor skrev:

Kan du inte packa alla variabler du ska skicka i en stack, hashtable eller vector? Om du vet vilken ordning de har så ska det väll inte vara omöjligt.

Borde ju funka, får kolla lite på hur man kan lösa det på någon av de sätten. Annars så har jag varit inne på att skapa ett objekt av variablerna och sen skicka objektet. Får kolla vad som blir smidigast. Tack!

SPiNMedlem sedan mars 20007 896 inlägg
#4

Skapa ett protokoll, eller en egen klass som implementerar Serializable. Fördelen med att bygga upp ett eget protokoll är att du kan skicka din data inte enbart till andra Java-applikationer, men är vet du med säkerhet att det endast kommer att användas mellan Java-applikationer så kan du skapa en klass eller skicka med Vector ( Som är serialiserbar ).

dhoMedlem sedan aug. 20022 027 inlägg
#5

SPiN skrev:

Skapa ett protokoll, eller en egen klass som implementerar Serializable. Fördelen med att bygga upp ett eget protokoll är att du kan skicka din data inte enbart till andra Java-applikationer, men är vet du med säkerhet att det endast kommer att användas mellan Java-applikationer så kan du skapa en klass eller skicka med Vector ( Som är serialiserbar ).

Tack för tipset. Jag ska testa. Återkommer säkert med fler frågor. :)

SPiNMedlem sedan mars 20007 896 inlägg
#6

Ett till tips om du väljer att skapa ett protokoll; Använd XML... ;)

spangoMedlem sedan juni 20008 205 inlägg
#7

Framför allt, använd java.beans.XMLEncoder/Decoder i stället för Object{In,Out}putStream om du ska skicka saker och ting mellan olika datorer.

dhoMedlem sedan aug. 20022 027 inlägg
#8

spango skrev:

Framför allt, använd java.beans.XMLEncoder/Decoder i stället för Object{In,Out}putStream om du ska skicka saker och ting mellan olika datorer.

Vilka fördelar ger det mot att använda Object{In,Out}?

spangoMedlem sedan juni 20008 205 inlägg
#9

Det ger en lite mer abstrakt serialisering av objektet, baserad på dess olika "properties", medan objektströmmarna ger en lite mer dumrealistisk variant, som bryr sig om den faktiska implementationen snarare än vad det är tänkt att representera. Kolla dokumentation för XMLEncoder för mer detaljer :)

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)