A
alibali
Gast
hi, ich versuche mich gerade an einem kleinen client/server testprogramm, und wollte bei einem bestimmten kommando gerne ein objekt vom server zum client schicken.
der server schickt dem client bei einem bestimmten ereignis ein objekt, da es nur eine socketverbindung gibt, und die eigentliche kommunikation über einen BufferedReader und einen PrintWriter läuft, muss der server dem client ja vor dem objekt noch mitteilen "achtung hier kommt jetz ein objekt!", gefolgt von dem eigentlichen objekt.
und ich glaube da liegt das problem begraben.
server:
kann ich einfach ein outputstream für zwei verschiedene zwecke verwenden? einmal einen normalen text ausgeben, gefolgt von einem objekt?
denn der client muss dann ja einen BufferedReader und einen ObjectInputStream auf denselben inputstream legen, was scheinbar nicht ganz funktioniert, denn der ObjectInputStream wartet vergeblich auf den header vom ObjectOutputStream...
client:
meine frage nun, wie kann ich das geschickt handlen, ohne einen zusätzlichen socket aufzumachen, geht immer nur eins von beidem und mein ansatz is total falsch?
ich hoffe ihr könnt mir helfen
danke
der server schickt dem client bei einem bestimmten ereignis ein objekt, da es nur eine socketverbindung gibt, und die eigentliche kommunikation über einen BufferedReader und einen PrintWriter läuft, muss der server dem client ja vor dem objekt noch mitteilen "achtung hier kommt jetz ein objekt!", gefolgt von dem eigentlichen objekt.
und ich glaube da liegt das problem begraben.
server:
Code:
out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "latin1"), true);
oout = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
kann ich einfach ein outputstream für zwei verschiedene zwecke verwenden? einmal einen normalen text ausgeben, gefolgt von einem objekt?
denn der client muss dann ja einen BufferedReader und einen ObjectInputStream auf denselben inputstream legen, was scheinbar nicht ganz funktioniert, denn der ObjectInputStream wartet vergeblich auf den header vom ObjectOutputStream...
client:
Code:
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
oin = new ObjectInputStream( new BufferedInputStream(socket.getInputStream()));
meine frage nun, wie kann ich das geschickt handlen, ohne einen zusätzlichen socket aufzumachen, geht immer nur eins von beidem und mein ansatz is total falsch?
ich hoffe ihr könnt mir helfen
danke