Hallo Leute, folgendes Problem:
Ich hab in meiner Klasse jeweils einen ObjectInput/Outputstream, mit dem ich Daten senden / empfangen kann. Läuft soweit auch. Jetzt möchte ich aber zusätzlich nen Thread starten, dem ich diese Streams übergebe, der soll einfach nur Lauschen und wenn entsprechendes empfangen wurde reagieren.
Ist es möglich, die selben Streams also sogesehen doppelt zu verwenden?
kurzes beispiel:
Ich fange natürlich die Exception bei input = ois.readObject() ab und bekomme folgende Fehlermeldung:
"invalid type code: 00"
Achja, readObject() blockiert auch nicht (klar, wird ja auch ne Exception geworfen ...) sondern wird zich mal durchlaufen und der fehler wird immer wieder angezeigt.
Ich hoffe ihr könnt mir weiterhelfen, ich bin echt am verzweifeln. Falls ich Fragen aufgeworfen hab, sagt bitte bescheid. (Entschuldigt die schlechte einrückung, die
Ich hab in meiner Klasse jeweils einen ObjectInput/Outputstream, mit dem ich Daten senden / empfangen kann. Läuft soweit auch. Jetzt möchte ich aber zusätzlich nen Thread starten, dem ich diese Streams übergebe, der soll einfach nur Lauschen und wenn entsprechendes empfangen wurde reagieren.
Ist es möglich, die selben Streams also sogesehen doppelt zu verwenden?
kurzes beispiel:
Code:
Klasse:
private ObjectInputStream ois;
private ObjectOutputStream oos;
[...]
Konstruktor der Klasse:
oos = new ObjectOutputStream(socket.getOutputStream());
ois = new ObjectInputStream(socket.getInputStream());
[...]
Methoden die etwas senden ... und wenn nötig empfangen.
Gesendet wird, wenn die GUI in dieser Klasse eine Methode zum senden aufruft.
[...]
Threadstart:
listen = new ListeningThread(Klasse.this,ois,oos);
listen.start();
Thread:
public ListeningThread(Klasse klasse, ObjectInputStream ois, ObjectOutputStream oos) {
this.klasse = klasse;
this.ois = ois;
this.oos = oos;
}
[...]
run(){
[...]
input = ois.readObject(); //hier wird der Fehler geworfen!
[...]
Methoden die, wenn nötig, etwas machen.
[...]
}
Ich fange natürlich die Exception bei input = ois.readObject() ab und bekomme folgende Fehlermeldung:
"invalid type code: 00"
Achja, readObject() blockiert auch nicht (klar, wird ja auch ne Exception geworfen ...) sondern wird zich mal durchlaufen und der fehler wird immer wieder angezeigt.
Ich hoffe ihr könnt mir weiterhelfen, ich bin echt am verzweifeln. Falls ich Fragen aufgeworfen hab, sagt bitte bescheid. (Entschuldigt die schlechte einrückung, die
Code:
funktioniert stellt die nicht so dar wie ichs gern hätte ...)