H
hexxenhammer
Gast
Hallohallo Gemeinde,
bin sonst nicht so sehr in Foren unterwegs, aber ich bräuchte mal Hilfe bei einem Problem, das mir derzeit Kopfzerbrechen bereitet.
Und zwar handelt es sich um ein Chatprogramm auf Client/Server Basis, bei der Strings hin und her gesendet werden. Das funkioniert derzeit alles einwandfrei. Nun hab ich mir überlegt anstelle von Strings lieber Objekte zu schicken, da ich darin mehr Informationen transportieren kann (wie z.b. Schriftart/Farbe/etc...).
Der Client arbeitet wie folgt:
Er läuft in einer while Schleife und prüft ob es neue Nachrichten gibt.
Bisher war es so, dass ich dafür BufferedWriter bzw. BufferedReader benutzt habe.
Das hatte den Vorteil, dass ich immer abfragen konnte ob denn wirklich etwas im Bufferedreader drin steckt,
mit Hilfe von BufferedReader.ready().
was so aussieht:
Wenn ich nun ObjectInputStream benutze hab ich leider keine solche Funktion. was dann so aussieht:
Mein Client bleibt dann also einfach hängen bei der 2. Zeile und reagiert aber dementsprechend nicht mehr auf was anderes (wie senden zb). Gibt es eine Möglichkeit für ObjectInputStream ähnlich der .ready()-Funktion bei BufferedReader?
Wenn ja, wäre es nett, wenn ihr mir das mitteilen könntet.
Wenn nicht, hab ihr eine Idee, wie man das Abfragen auf ankommende Nachrichten(Objekte) anders gestalten könnte?
bin sonst nicht so sehr in Foren unterwegs, aber ich bräuchte mal Hilfe bei einem Problem, das mir derzeit Kopfzerbrechen bereitet.
Und zwar handelt es sich um ein Chatprogramm auf Client/Server Basis, bei der Strings hin und her gesendet werden. Das funkioniert derzeit alles einwandfrei. Nun hab ich mir überlegt anstelle von Strings lieber Objekte zu schicken, da ich darin mehr Informationen transportieren kann (wie z.b. Schriftart/Farbe/etc...).
Der Client arbeitet wie folgt:
Er läuft in einer while Schleife und prüft ob es neue Nachrichten gibt.
Bisher war es so, dass ich dafür BufferedWriter bzw. BufferedReader benutzt habe.
Das hatte den Vorteil, dass ich immer abfragen konnte ob denn wirklich etwas im Bufferedreader drin steckt,
mit Hilfe von BufferedReader.ready().
was so aussieht:
Java:
input = new BufferedReader(new InputStreamReader(server.getInputStream()));
if (input.ready() == true)
{
...
String txt = input.readLine();
...
}
Wenn ich nun ObjectInputStream benutze hab ich leider keine solche Funktion. was dann so aussieht:
Java:
input = new BufferedInputStream(server.getInputStream());
Message tmp_msg = (Message) input.readObject();
Mein Client bleibt dann also einfach hängen bei der 2. Zeile und reagiert aber dementsprechend nicht mehr auf was anderes (wie senden zb). Gibt es eine Möglichkeit für ObjectInputStream ähnlich der .ready()-Funktion bei BufferedReader?
Wenn ja, wäre es nett, wenn ihr mir das mitteilen könntet.
Wenn nicht, hab ihr eine Idee, wie man das Abfragen auf ankommende Nachrichten(Objekte) anders gestalten könnte?