ftp-client: problem mit LIST
-
hi,
ich meine mal gelesen zu haben das der ftp port(21) nur als befehlsport verwendet wird. ein anderer port is fuer die daten zustaendig. einfach mal noch was darueber lesen.
gruss
msp
-
Macht ihr aktives oder passives ftp? Für aktives FTP muss der Client auf dem Datenport (20) quasi als Server laufen.
-
Generell interessant für Leute, die das FT-Protocol implementieren wollen:
http://cr.yp.to/ftp.html
-
könnte bitte jemand ein beispiel zu list schreiben??
ftp funktionen hab ich leider nicht gefunden
-
-
du bist auch dumm
tschuldigung aber google und msdn suche haben mir nicht geholfen
danke für den link
-
Hättest du mal bei google:
ftp msdn
eingegeben...
-
hallo. erstmal vielen dank für eure hilfe.
aber ich bekomme es einfach nicht hin mit PASV
habe hier ein tutorial in C++ gefunden
http://www.phpcoders.de/printthread.php?threadid=1831
habs auch verstanden was ich machen muss. aber es funzt net.
also ich erstelle ein socket s und connecte mich zum ftpserver auf 192.168.0.2 über port 21
dann login u.s.w
dann sende ich auf s PASV\r\n als antwort bekomme ich
folgende ip: 192.169.0.2
und auf port 1024(ausgerechnet)
danach erstelle ich ein neues socket ss ich connecte zu 192.168.0.2 aud port 1024 ich schreibe auf ss LIST\r\n und lese auf ss aber ich bekomme keine antwort was mache ich falsch
vielen dank
-
hab jetz nicht voll die Ahnung, aber hast Du das richtig verstanden ... ?
ließ noch mal in Deinem Link nach
http://www.phpcoders.de/printthread.php?threadid=1831bist Du zu dieser Zeile kommst.
fputs(fp, "LIST\\n"); get\_file\_list(pasv);siehst Du was ich sehe ?
Es wurde wohl schon gesagt, ftp hat zwei Verbindungen, eine über die Du dich mit der Server redest und eine über die der Server Daten schick, eine Dateiliste sind auch Daten. Ein Fehler dürfte hingegen auf Deiner ersten Verbindung über port 21 kommen, da muß ich mich aber selbst nochmal kundig machen.
Und die IP ist wohl sinnvollerweise immer die selbe was hier sehr schön zu erkennen ist
$fp = fsockopen ("kernel.org", 21, $errno, $errstr, 30);
function get_file_list(port) { fp = fsockopen ("kernel.org", $port, $errno, $errstr, 3);
...
}MfG
RB
-
marcus.t schrieb:
dann sende ich auf s PASV\r\n als antwort bekomme ich
folgende ip: 192.169.0.2Wo steht denn dieser Server? Steht der hinter einem Router, der eine Adressumsetzung (NAT) macht? Die IP-Adresse ist für meinen Geschmack zu ähnlich zum privaten IP-Bereich 192.168.
-
hallo.
habe noch einen zweiten pc und da habe ich einen kleinen ftp-server installiert.
ich komm trotzdem nicht weiter
cu
-
hallo,
dann schau Dich mal hier http://www.codeproject.com/internet/#FTP um.
Sicherlich findest Du auch ein Bsp. was ohne MfC das FTP-Protokoll implementiert.MfG
RB
-
danke an alle die uns geholfen haben es funktioniert jetzt endlich.
vielen dank
-
toll und woran lag es ...
mfg
RB
-
ich hab nicht bedacht das ich es zeilenweise lesen muss.
also ich sende PASV
dann connecte ich über port 1024(ausgerechnet) zum server
ich schreibe LIST über port 21
Hier war der fehler ich habe nun einfach ein read über port 1024 gemacht
ich hätte es aber in einer schleife ausgeben müssen
alsowhile(true) { cout<<read()<<endl; //read is ne funktion zum lesen string temp = read(); if((char*)temp.c-str()) { break; } }
cu