Bacardi1539
Grünschnabel
Einen wunderschönen guten Tag und Malzeit wünsche ich euch allen 
Ich habe folgendes Problem:
Ich bin dabei einen FTP-Client zu basteln. Der Pasive Modus funktioniert einwand frei ABER der aktive Modus will nicht so wie ich. Der FTP-Server gibt mir nach dem STOR Befehl immer die Meldung 425 Can't open data connection!
Kurz vorweg: ICH WILL HIER NICHT MIT EINEM VORDEFINIERTEN CLIENT ARBEITEN WIE "FTP4J", "Apache Commons Net" oder dem "JavaFTPClient".
Er soll komplett selbst geschrieben sein.
Ich habe die Socketverbindung auch soweit aufgebaut. Login geht auch wunderbar. Nicht wundern: Im nachfolgenden Code habe ich keine Sicherheitsabfragen, da ich erstmal nur die Funktionen an sich testen möchte. Ich habe einen localen FTP Server von FileZilla offen. Wenn ich über "FTP4J" die Verbindung aufbaue klappt es. Ich sitze nun schon 4 Wochen an diesem beschi**enen Fehler! Ach ja und ich verwende NetBeans 7.2
Hier der Code:

Ich habe folgendes Problem:
Ich bin dabei einen FTP-Client zu basteln. Der Pasive Modus funktioniert einwand frei ABER der aktive Modus will nicht so wie ich. Der FTP-Server gibt mir nach dem STOR Befehl immer die Meldung 425 Can't open data connection!
Kurz vorweg: ICH WILL HIER NICHT MIT EINEM VORDEFINIERTEN CLIENT ARBEITEN WIE "FTP4J", "Apache Commons Net" oder dem "JavaFTPClient".
Er soll komplett selbst geschrieben sein.
Ich habe die Socketverbindung auch soweit aufgebaut. Login geht auch wunderbar. Nicht wundern: Im nachfolgenden Code habe ich keine Sicherheitsabfragen, da ich erstmal nur die Funktionen an sich testen möchte. Ich habe einen localen FTP Server von FileZilla offen. Wenn ich über "FTP4J" die Verbindung aufbaue klappt es. Ich sitze nun schon 4 Wochen an diesem beschi**enen Fehler! Ach ja und ich verwende NetBeans 7.2
Hier der Code:
Java:
package lalalatest;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LalalaTest {
static PrintWriter writeCodeToFTP;
public static void main(String[] args) throws InterruptedException {
try {
uploadFile();
} catch (IOException ex) {
System.err.println("NO ");
Logger.getLogger(LalalaTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void uploadFile() throws IOException {
Socket messageConnection = new Socket("localhost", 21);
writeCodeToFTP = new PrintWriter(messageConnection.getOutputStream(), true);
issueCommand("USER *******");
issueCommand("PASS *******");
issueCommand("FEAT");
issueCommand("OPTS UTF8 ON");
issueCommand("TYPE A");
ServerSocket portSocket;
Socket clientSocket = null;
String portCmd;
portSocket = new ServerSocket(0, 1);
portSocket.setReceiveBufferSize(512 * 1024);
InetAddress myAddress = InetAddress.getLocalHost();
int myPort = portSocket.getLocalPort();
portCmd = "PORT " + myAddress + "." + (myPort / 256) + "." + (myPort % 256);
issueCommand(portCmd);
issueCommand("REST 0");
issueCommand("STOR TEST.txt");
portSocket.setSoTimeout(5000);
clientSocket = portSocket.accept();
if (clientSocket.isConnected()) {
System.err.println("JO " + clientSocket);
}
}
private static void issueCommand(String code) {
writeCodeToFTP.println(code);
}
}
Zuletzt bearbeitet: