Moin Leute.
Ich möchte einen FTP Client auf Socketbasis erstellen.
Das funktioniert so weit auch ganz gut, anmelden an den Server ist kein Problem.
Mein Client besteht zur Zeit aus 2 Klassen, die parallel gestartet werden.
Einmal der ClientKlasse, die die Befehle an den Server schickt, und einer Konsolenklasse, die immer horchen soll, ob der Server was sagt und es dann per println in die Konsole schreiben.
So weit so gut, das funktioniert alles.
Allerdings soll jetzt der Client wissen, wann nichts mehr in die Konsole geschrieben wird, dann 20sec warten und ein NOOP abschicken, und dann wieder warten bis die Konsole sagt, dass sie nichts neues mehr hat.
Mein Problem: Woher weiß ich, wann nichts neues mehr kommt? Die Konsole gibt brav alle Servermeldungen aus und dann nichts mehr.
Allerdings kann ich das "Nichts" nicht abfangen.
Es ist weder "", noch null.
Auch ein isEmpty() ergibt immer false, obwohl nichts mehr kommt?!
Ich möchte einen FTP Client auf Socketbasis erstellen.
Das funktioniert so weit auch ganz gut, anmelden an den Server ist kein Problem.
Mein Client besteht zur Zeit aus 2 Klassen, die parallel gestartet werden.
Einmal der ClientKlasse, die die Befehle an den Server schickt, und einer Konsolenklasse, die immer horchen soll, ob der Server was sagt und es dann per println in die Konsole schreiben.
So weit so gut, das funktioniert alles.
Allerdings soll jetzt der Client wissen, wann nichts mehr in die Konsole geschrieben wird, dann 20sec warten und ein NOOP abschicken, und dann wieder warten bis die Konsole sagt, dass sie nichts neues mehr hat.
Mein Problem: Woher weiß ich, wann nichts neues mehr kommt? Die Konsole gibt brav alle Servermeldungen aus und dann nichts mehr.
Allerdings kann ich das "Nichts" nicht abfangen.
Es ist weder "", noch null.
Auch ein isEmpty() ergibt immer false, obwohl nichts mehr kommt?!
Java:
import java.io.IOException;
public class Konsole extends Thread {
Client client;
public Konsole(Client client) {
this.client = client;
}
public void run() {
while(true) {
try {
String line = client.fromServer.readLine();
if(!line.isEmpty() ) {
System.out.println(line);
}
else {
System.out.println("Leer");
}
} catch (IOException e) {}
}
}
}