Hallo,
ich lerne gerade Java und bin jetzt beim Thema "Netzwerkprogrammierung" angelangt.
Ich habe ein Tool geschrieben, dass eine Verbindung zu einem FTP-Server aufnimmt und dort eine Datei abholen soll. Dabei tritt das Problem auf, dass ich nicht weis, ob ich eingelogt bin. Also ob jetzt der richtige Zeitpunkt ist ein "get" zu senden. Der Login funzt aber soweit.
Die if-Abfrage "230 You are currently in directory "/". geht nicht korrekt (oder das ls ?), egal wie ich es ausdrücke.
Dabei ist es die letzte Meldung nach dem Login (die der ftp-server sendet). Demnach müsste der Zeitpunkt richtig sein, aber da kommt dann nur "Bad command" zurück.
Wenn ich es manuell über die cmd versuche kommt nach ls/dir das richtige ergebnis zurück. Also muss irgend wie die IF-Abfrage nicht stimmen.
2. Problem:
Wie kann ich meine while-Schleife abbrechen? Ich habe auf der Form ein abbrechen-button, kann es aber nicht anklicken. Denn sobald der in der while-schleife ist friert die form (JFrame) ein. Es kommen nur noch ausgaben ins TextArea (status).
Thx!
ich lerne gerade Java und bin jetzt beim Thema "Netzwerkprogrammierung" angelangt.
Ich habe ein Tool geschrieben, dass eine Verbindung zu einem FTP-Server aufnimmt und dort eine Datei abholen soll. Dabei tritt das Problem auf, dass ich nicht weis, ob ich eingelogt bin. Also ob jetzt der richtige Zeitpunkt ist ein "get" zu senden. Der Login funzt aber soweit.
Code:
...
while ((str=bb.readLine()) != null)
{
status.setText(status.getText() + str + "\n");
if (str.indexOf("220 Welcome to Code-Crafters Ability FTP Server.") != -1)
{
out.println("USER Marfir");
}
if (str.indexOf("331 Please send PASS now.") != -1)
{
out.println("PASS edv");
}
if (str.indexOf("You are currently") != -1)
{
//out.println("get LIEFER.DAT");
out.println("ls");
}
if (str.indexOf("550 Bad command.") != -1)
{
out.println("bye");
s.close();
return;
}
}
s.close();
Die if-Abfrage "230 You are currently in directory "/". geht nicht korrekt (oder das ls ?), egal wie ich es ausdrücke.
Dabei ist es die letzte Meldung nach dem Login (die der ftp-server sendet). Demnach müsste der Zeitpunkt richtig sein, aber da kommt dann nur "Bad command" zurück.
Wenn ich es manuell über die cmd versuche kommt nach ls/dir das richtige ergebnis zurück. Also muss irgend wie die IF-Abfrage nicht stimmen.
2. Problem:
Wie kann ich meine while-Schleife abbrechen? Ich habe auf der Form ein abbrechen-button, kann es aber nicht anklicken. Denn sobald der in der while-schleife ist friert die form (JFrame) ein. Es kommen nur noch ausgaben ins TextArea (status).
Thx!