# Was sendet FTP-Server bei LIST-Befehl?



## cesupa (25. April 2007)

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):


```
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


----------



## Sinac (26. April 2007)

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
> ...



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

Greetz...
Sinac


----------



## Dennis Wronka (26. April 2007)

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.


----------



## cesupa (17. Mai 2007)

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:

```
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


----------

