ServerSocket
-
Hi zusammen,
kurze Frage, ich bin gerade daran Java zuerlernen und daher Schreibe ich für mich selbst gerade einen EchoServer.
Kurz zum Aufbau des Programms.
Ich erzeuge einen ServerSocket, der lauscht auf den Port 7.
Bei jeder Anfrage, die aufen Port 7 kommt, wird ein Thread geöffent, der dann für diesen Client zuständig ist.Jetzt habe ich nur das Problem, das ich das Ende einer Verbindung nicht mit bekommen, d.h. wenn der Client seine Verbindung beendet, läuft mein Thread schön weiter.
Daraufhin habe ich versucht, die Endlosschleife des Thread über die Methode socket.isConnected() abhängig zumachen und bei beendigung der Verbindung von Client, damit den Thread zubeenden. Das klappt aber leider nicht, die Verbindung bleibt immernoch aktiv, da isConnect weiterhin true zurück gibt und der Thread läuft weiter...Hat vielleicht von euch ne Idee, wie ich das lösen könnte???
Danke für die Hilfe...
-
Hallo,
ich weis es jetzt nicht genau, aber vielleicht so:
public void run() { while(Verbunden) { try { while((lesen = in.readLine()) != null) { //Hier: (z.B. so) die Sachen einlesen } } catch(IOException e) { Verbunden = false; } finally { Verbunden = false; } } }
Verbunden ist halt eine boolsche Variable, die du beim Starten auf true setzt.
Hoffe, das hilft
Karl
-
Hallo Karl,
danke für die Bestätigung, denn inzwischen habe ich es selbst genauso gelöst.
Aber trotzdem nochmal vielen Dank für die Hilfe...