Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Mein Problem sieht folgendermassen aus:
Ich möchte beim Programmstart eine Verbindung zu einem FTP-Server aufbauen, und gleich sämtliche *.txt files in ein bestimmtes verzeichnis kopieren. Mein Problem ist nun, dass ich zwar schon verbindungen aufbauen konnte, jedoch nie downloaden konnte. Habe dazu bereits vorhandene Klassen von dritten verwendet, kriege aber jedesmal eine exception.
Kennt jemand von euch eine gute Anleitung oder eine super Klasse?
SocketException? Hmm... die wird normalerweise nicht bei trivialen fehlern geworfen. poste doch mal den stacktrace und relevanten code und markiere die zeile wo der fehler auftritt..
Trying to connect to ftp......
220-ftp........... X2 WS_FTP Server 2.0.4 (1583995067)
220-*** ................. FTP SERVER ***
220-
220-Unauthorized usage prohibited.
220-
220 ftp....................... X2 WS_FTP Server 2.0.4 (1583995067)
331 Password required
230-user logged in
Successfully logged in!
230-** WELCOME TO OUR FTP-SERVER **
230-
230-ATTENTTION!! Files older than 2 weeks will be deleted automatically.
230-
230-
230-
230 user logged in
System type is: UNIX
Current directory is: /users
215 UNIX
257 "/users" is current directory
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at FTPConnection.getFullServerReply(FTPConnection.java:419)
at FTPConnection.getServerReply(FTPConnection.java:404)
at FTPConnection.openPort(FTPConnection.java:871)
at FTPConnection.setupDataPort(FTPConnection.java:808)
at FTPConnection.executeDataCommand(FTPConnection.java:749)
at FTPConnection.processFileListCommand(FTPConnection.java:531)
at FTPConnection.getAndParseDirList(FTPConnection.java:565)
at FTPConnection.listFiles(FTPConnection.java:480)
at FTPConnection.listFiles(FTPConnection.java:465)
at FTPFileDownload.<init>(FTPFileDownload.java:31)
at FTPFileDownload.main(FTPFileDownload.java:60)
Hier der Code:
Code:
import java.io.*;
import java.net.*;
public class FTPFileDownload {
private final static String serverName = "ftp..";
private FTPConnection ftp = null;
private final static String username = "";
private final static String password = "";
public FTPFileDownload() {
ftp = new FTPConnection(true);
System.out.println("Trying to connect to " + serverName);
try {
ftp.connect(serverName);
if (ftp.login(username, password)) {
System.out.println("Successfully logged in!");
System.out.println("System type is: " + ftp.getSystemType());
System.out.println("Current directory is: " + ftp.getCurrentDirectory());
String files = ftp.listFiles();
// String subDirs = ftp.listSubdirectories();
// System.out.println("Files in Directory:\n" + files);
// ..................................
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static String getStringFromUser(String prompt) throws IOException {
System.out.print(prompt);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
public static void main(String[] args) {
new FTPFileDownload();
}
}
Also der Fehler tritt bei listFiles(); und listSubdirectories(); auf...
jetzt rat mal was das auf deutsch heisst :?
hast du das programm mal mit nem anderen server ausprobiert um auszuschließen dass das an deinem programm liegt? und dir soltle klar sein dass FTP verbindungen automatisch nach einer bestimmten zeit geshclossen werden wenn nnix mehr hin und her gesendet wurde :!:
Läuft dort eine Firewall? Sowas kam bei mir mal von der Firewall. Da hilft nichts, du musst die Firewall anpassen oder anders Routen.
Vielleicht funktionierts im Passive Mode...