Hallo,
ich möchte in meinem Java-Spiel eine Verbindung zu einem FTP-Server herstellen, dafür verwende ich die org.apache.commons.net.ftp.* Libraries. Das Verbinden, ein loggen, ausloggen und disconnecten klappt auch gut, nur sobald ich irgendwelche Befehle ausführe, bekomme ich einen Socket Error.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class FtpTest
{
public static void main(String[] args) throws IOException
{
try
{
FTPClient ftp = new FTPClient();
ftp.connect("ftp.strato.de");
ftp.login("<user>", "<password>"); //natürlich mit richtigen Daten
FTPFile[] files = ftp.listFiles(); //hier kommt der Fehler
ftp.logout();
ftp.disconnect();
System.out.println("done");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
|
Fehler:
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at org.apache.commons.net.ftp.FTP.__send(FTP.java:501)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:475)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:552)
at org.apache.commons.net.ftp.FTP.port(FTP.java:877)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:709)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:657)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3097)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3072)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2731)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:277
at FtpTest.main(FtpTest.java:16)
An was kann das liegen? Auch sämtliche vorgefertigten Beispiele laufen auf diesen Fehler hinaus und diese Library ist fpür FTP-bezogene Sachen echt top, d.h. es wäre spitze, wenn das klappen würde.
Vielleicht hatte ja mal jemand denselben Fehler und konnte diesen beheben.
Unter C# klappt es einwandfrei, aber ich will nicht das eigtl. Spiel in Java progammieren und FTP-bezogenes zeug muss dann ein anderes Programm benutzt werden
MfG Sascha