Wenn ich davon ausgehe das der Sercer sich nie trennt gut. Aber wer ändert meine keepalive Variable wenn die Verbindung unerwartet unterbrochen wird. Wie stehen meine Chancen in meinem Thread Streams zu lesen und zu schreiben?
Beiträge von philipp5054
-
-
Die Verbindung habe ich auch beide mögliche Wege unterbrochen.
1. per Button klappt was ich auf der Server Seite merke (VB .net Test Programm)
if
(client.isConnected()) {
keepRunning = false; //unschöne Lösung zum beenden des Poll Threads
try {
client.close();
} catch (IOException e) {
// [b]TODO Auto-generated catch block
e.printStackTrace();
}
[/b]2. Per beenden des Servers.
-
Hallo Zusammen,
ich bin recht neu in der Android App Entwicklung und habe nun das Problem das ich das Starten einen Threads ohne weiteres hin bekomme. Auch das beenden per Variable klappt. Nur wenn ich anstatt der Variable keepRunning es mit "client.isConnected()" passiert nix.hier meine Deklarationen alle in der Klasse aber in keiner Funktion:
privatevolatilebooleankeepRunning;
Socket client; //auch mit volatile davor klappt es nicht
Hier der Thread:Runnable TCP_POLL =
new Runnable() {
@Override
publicvoid run() {
Log.d(TAG, "run()-Methode für Polling wurde aufgerufen");
while(keepRunning){ //kann auch wärend der Thread läuft auf False gesetzt werden und der Thread Stopt
//while(client.isConnected()){ //hier interessiert den Thread nur der Zustand beim Starten
Log.d(TAG,"Check TCP RxBuffer");
if (client.isConnected() == true) Log.d(TAG, "1");
if (client.isConnected() == false) Log.d(TAG, "0");
try {
Thread.sleep(1000);
} catch (InterruptedException e){
// Unterbrechen ingnorieren
}
}
}
};