FTP FTP | Datentransfer unterbrechen

Dit_

Bekanntes Mitglied
Hallo,

ich versuche in meinem FTPModul eine Funktion zu implementieren die ein Download/Upload ordnungsgemäß vorzeitig beendet, ohne dass es zu Exceptions kommt.

Wie geht man da vor? Habe folgende Lösung gefunden:

1. Also ich starte Upload.
2. Benutzer klickt auf CANCEL...
3. passiveTransferDataSocket.close();
4. sendCmd("ABOR");
5. Fertig.

Funktioniert aber nicht so richtig. Timeout Excepsion oder sonstige IOExceptions werden ausgelöst.

Würde mich freuen wenn jemand ein Vorschlag hätte :)

:oops:

danke schon mal
 

Dit_

Bekanntes Mitglied
Lösung: einfach passiveSocket schliessen. Dem Server scheint es egal zu sein, ob man die Daten vollständig gesendet bzw empfangen hat. :) "ABOR" ist in diesem Fall nicht andwendbar (glaube ich...)
 

Michael...

Top Contributor
Lösung: einfach passiveSocket schliessen. Dem Server scheint es egal zu sein, ob man die Daten vollständig gesendet bzw empfangen hat. :) "ABOR" ist in diesem Fall nicht andwendbar (glaube ich...)
Das hört sich aber an, als ob Du hier mit Kanonen auf Spatzen schießt. Der Client muss ja "einfach" nur einen Abbrechen Befehl an den Server schicken, der darauf hin seine aktuelle Sendeschleife unterbricht. Voraussetzung dafür ist natürlich, dass Du beim Senden nicht versuchst die Datei komplett in den OutputStream zu stopfen, sondern tatsächlich einzelne Segmente in einer Schleife überträgst.
 

Dit_

Bekanntes Mitglied
Das hört sich aber an, als ob Du hier mit Kanonen auf Spatzen schießt. Der Client muss ja "einfach" nur einen Abbrechen Befehl an den Server schicken, der darauf hin seine aktuelle Sendeschleife unterbricht. Voraussetzung dafür ist natürlich, dass Du beim Senden nicht versuchst die Datei komplett in den OutputStream zu stopfen, sondern tatsächlich einzelne Segmente in einer Schleife überträgst.

ja aber die schleife implementiert ja mein Client. Mit jedem Schleifendurchgang "requeste" ich vom FTP-Server bestimmte byteAnzahl (zb BUFFER_SIZE = 1024) über passiveSocket zu senden. Beim schliessen des Sockets wird die Verbindung "ordentlich" beendet. und ich bekomme meldung:
226 Transfer complete


226 Closing data connection. Requested file action successful. (Datenverbindung wird getrennt. Angeforderter Vorgang erfolgreich. (z. B. Dateiübertragung oder Abbrechen des Transfers))
 

Ähnliche Java Themen


Oben