da haut irgendwas nicht hin
PASV bedeutet das du in den passiven modus wechselst
dabei öffnet der FTP-server einen weiteren port an den du dich verbinden kannst und gibt dir dessen spec : ip und port (wobei in deinem beispiel “(244<<8)|69” = 62533)
und auf PASV sowie die antwort folgt dann vom client eine verbindung an den vom server gemeldeten port über den dann die daten laufen
bedeutet : du setzt über die command-verbindung den befehl LIST ab, musst das ergebnis aber auf der data-verbindung auslesen
in deinem beispiel würdest du nämlich keine auflistung bekommen sondern nur die command-bestätigung
so wie das code-stück aussieht kann man von ausgehen das du versuchst FTP selbst nachzubauen, und bist dabei nicht wirklich erfolgreich
vielleicht würde es doch helfen mal den gesamten code zu posten
ich wette das in deinem gesamten code keine data-verbindung aufgebaut wird, was der server auch prompt mit nem error quitiert da er die ja keine daten senden kann
um es also noch mal zusammen zu fassen
nach dem du PASV über die command-verbindung abgesetzt hast bekommst du über die command-verbindung eine antwort mit dem muster ip1,ip2,ip3,ip4,p1,p2 wobei die ip als dezimale schreibweise übergeben wird (also z.b. 127,0,0,1,x,x für 127.0.0.1) und der port als byte-split, also einmal die ersten 8bit und dann die letzten 8bit, die man dann einfach mit shift und or wieder zur richtigen port-nummer zusammenbauen kann
dann hast du die data-adresse an die du dann einen neuen socket aufbaust und ebenfalls einen read-loop ran hängst (natürlich multi-thread)
wenn du dann über die command-verbindung LIST absetzt und das 200 bekommst wird dir über die data-verbindung der inhalt zugeschrieben
ps : wenn du das schon nicht bekommst versuch dich bitte erstmal etwas genauer mit FTP zu befassen bevor dein nächstes topic kommt in die richtung : file hoch-/runter-laden
wir helfen dir gern wenn es hier und dort hakt, aber erklären dir nicht das komplette FTP oder schreiben für dich deinen client