Was sendet FTP-Server bei LIST-Befehl?

cesupa

Erfahrenes Mitglied
Hallo,

also, ich bin grad dabei einen kleinen einfachen FTP Server mal selber zu programmieren. Der Funktioniert auch schon wunderbar, nur leider bleibe ich grad beim LIST-Befehl hängen. Unzwar weiß ich nicht, was der Server senden muss wenn er diesen Befehl erhält bzw. in welcher Reihenfolge er die Daten senden muss.
Ich hab mir das Ganze schonmal bei einem Beispiel angeschaut(http://slacksite.com/other/ftp.html):

Code:
227 Entering Passive Mode (192,168,150,90,195,149).
---> LIST
150 Opening ASCII mode data connection for file list
drwx------   3 slacker    users         104 Jul 27 01:45 public_html
226 Transfer complete.

So, also der erste Teil zeigt die CHMOD-Einstellungen, das weiß ich schon:) , aber beim zweiten Teil happerts, was hat die 3 zu bedeuten? Der dritte Teil gibt den User der diese Datei erstellt hat wieder. Was der vierte Teil "users" zu bedeuten hat weiß ich nicht, ebenso was die 104 zu bedeuten hat. Mit dem Rest hab ich keine Probleme.

Also Danke schonmal.

Gruß
cesupa
 
Das LIST Commando ist in etwas so wie dir oder ls in der Konsole, der Client erwartet damit eine Liste der Objekte im aktuellen oder angegebenen Verzeichniss:

LIST (LIST)

This command causes a list to be sent from the server to the
passive DTP. If the pathname specifies a directory or other
group of files, the server should transfer a list of files
in the specified directory. If the pathname specifies a
file then the server should send current information on the
file. A null argument implies the user's current working or
default directory. The data transfer is over the data
connection in type ASCII or type EBCDIC. (The user must
ensure that the TYPE is appropriately ASCII or EBCDIC).
Since the information on a file may vary widely from system
to system, this information may be hard to use automatically
in a program, but may be quite useful to a human user.

Wenn du so etwas programmierst solltest du dir das entsprechende RFC durchlesen und berücksichtigen:
http://tools.ietf.org/html/rfc959

Greetz...
Sinac
 
Und wenn ich mich recht erinnere kommt die Liste nicht ueber die Kontrollverbindung sondern die separate Datenverbindung.
Aber ich denk mal mit den beiden getrennten Verbindungen wirst Du Dich bereits beschaeftigt haben.
 
Hallo,

also ich bin mit meinem Programm jetzt soweit die Verzeichnisliste zu senden. Das heißt also wenn mir der Client den Befehl "LIST" sendet sende ich folgende Daten über den Passiv-Port zurück:
Code:
drwxr-xr-x   3 ftp      ftp           149 Aug 18  2006 .
drwxr-xr-x   3 ftp      ftp           149 Aug 18  2006 ..
-rw-r--r--   1 ftp      ftp           930 Aug 20  2006 TEST1.php
-rw-r--r--   1 ftp      ftp           412 Jul  2  2006 TEST2.php
-rw-r--r--   1 ftp      ftp            94 Aug 18  2006 TEST2.txt
-rw-r--r--   1 ftp      ftp           257 Jul  2  2006 Test3.php
-rw-r--r--   1 ftp      ftp           200 Jul  2  2006 Test4.php
-rwxrwxrwx   1 ftp      ftp             4 May 13 08:56 besucher_1.txt
-rw-r--r--   1 ftp      ftp           904 Jun 27  2006 index.php
drwxr-xr-x   6 ftp      ftp           137 Apr 22 06:14 new
-rw-r--r--   1 ftp      ftp            46 Aug 18  2006 test1.txt

Das Senden funktioniert auch wunderbar, nur wenn ich dann zum Abschluss sende: "226 Transfer complete" macht mein FTP-Client nicht weiter. Das heißt er zeigt mir die Verzeichnisliste nicht an(FileZilla). Muss ich zur Verzeichnisliste noch irgendwas dazusenden? Die Größe der ankommenden Daten oder so?

Gruß
cesupa
 

Neue Beiträge

Zurück