Hallo Leute,
ich habe lange gesucht, mir fehlen leider die passenen Begriffe um eine Antwort zu finden.
Ich habe in einer Client / Server (chat) umgebung folgendes:
Server erzeugt für jeden Client einen Thread
in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream()) ) ;
out= new BufferedWriter(new OutputStreamWriter( clientSocket.getOutputStream()) ) ;
Soweit so gut, ich sende nun Daten zu den Clients, das funktioniert auch problemlos
try {
out.write(outmsg);
out.flush();
} catch(IOException e) {
debugerr("sendToClient: "+outmsg);
return;
}
Ich teste das im Hause mit drei Rechnern.
Aber und genau da ist mein Problem.
Trenne ich einen Client einfach vom Netz, (Kabel ausstecken) wird trotzdem weiterhin lustig geschrieben.
Keine Exception, null. Verbinde ich nun den Client wieder dann kommt alles was nicht gesendet werden konnte auf einen Schlag.
Ich habe nicht das große Java Wissen aber wo speichert denn der Server diese Daten. Spätestens beim Flush sollte doch ein Fehler auftauchen?
Ich habe versuchsweise auch schon die buffersize von out auf 512 gesetzt und vollgeschrieben, egal. Stecke ich das Kabel beim Client wieder an. Ratzfatz ist alles da.
Ich hoffe ich konnte das erklären. Ich habe keine Ahnung an welcher Ecke ich da suchen muss. Ein Fingerzeig in die richtigte Richtung wäre super.
Echt kopfkratz
ich habe lange gesucht, mir fehlen leider die passenen Begriffe um eine Antwort zu finden.
Ich habe in einer Client / Server (chat) umgebung folgendes:
Server erzeugt für jeden Client einen Thread
in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream()) ) ;
out= new BufferedWriter(new OutputStreamWriter( clientSocket.getOutputStream()) ) ;
Soweit so gut, ich sende nun Daten zu den Clients, das funktioniert auch problemlos
try {
out.write(outmsg);
out.flush();
} catch(IOException e) {
debugerr("sendToClient: "+outmsg);
return;
}
Ich teste das im Hause mit drei Rechnern.
Aber und genau da ist mein Problem.
Trenne ich einen Client einfach vom Netz, (Kabel ausstecken) wird trotzdem weiterhin lustig geschrieben.
Keine Exception, null. Verbinde ich nun den Client wieder dann kommt alles was nicht gesendet werden konnte auf einen Schlag.
Ich habe nicht das große Java Wissen aber wo speichert denn der Server diese Daten. Spätestens beim Flush sollte doch ein Fehler auftauchen?
Ich habe versuchsweise auch schon die buffersize von out auf 512 gesetzt und vollgeschrieben, egal. Stecke ich das Kabel beim Client wieder an. Ratzfatz ist alles da.
Ich hoffe ich konnte das erklären. Ich habe keine Ahnung an welcher Ecke ich da suchen muss. Ein Fingerzeig in die richtigte Richtung wäre super.
Echt kopfkratz