Aktive FTP Verbindung

Anfängerfragen zum Programmieren mit PureBasic.
SW808
Beiträge: 4
Registriert: 26.02.2011 21:59

Aktive FTP Verbindung

Beitrag von SW808 »

Hallo,
ich möchte gerne eine aktive FTP Verbindung zu einem FTP Server aufbauen. Mein FTP Server zum Testen
ist im gleichen Subnet. Eine passive Verbindung ist kein Problem. (Alle Firewalls open)

Mein Verwendung im Moment:
Ergebnis = OpenFTP(1,"192.168.1.11","Administrator","netware", 1, 21)

Was ich nicht verstehe ist, wie ich den Parameter "Passiv" setzen muß um eine aktive Verbindung zu bekommen:
Ergebnis = OpenFTP(#Ftp, ServerName$, User$, Passwort$ [, Passiv [, Port]])

Mit "0" geht es leider nicht. Eine aktive Verbindung mit dem IE8 vom gleichen PC ist kein Problem.

Gruß Silvio
PureBasic 4.51 (x86), Windows 7 (32Bit), T5600
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Aktive FTP Verbindung

Beitrag von DarkDragon »

Das liegt dann wohl an deinem FTP Server, dass das nicht geht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
SW808
Beiträge: 4
Registriert: 26.02.2011 21:59

Re: Aktive FTP Verbindung

Beitrag von SW808 »

Hallo,

danke für die Antwort. Das kann ich mir eigentlich nicht vorstellen, weil
ja der IE8 eine fehlerlose aktive Client Verbindung mit dem gleichen Server
herstellen kann und der passiv Mode bei PureBasic auch funktioniert.

Meine eigentliche Frage lautet ja auch weniger warum das nicht funktioniert,
sondern erst einmal überhaupt:

Wie lautet die richtige Befehlssequenz für den aktiv mode.

Ergebnis = OpenFTP(#Ftp, ServerName$, User$, Passwort$ [, Passiv [, Port]])

Ich verstehe nicht wie ich den Parameter "Passiv" für aktive Verbindungen setzen
muß. In der Hilfe finde ich nichts dazu. Muß Passiv auf 21467 oder eher auf
29787 für den aktiv mode gesetzt werden :) .

Vielleicht verstehe ich den Befehl auch völlig falsch, oder aktiv wird nicht
unterstützt. Beim FTP Server handelt es sich um den bei XP integrierten FTP
Server (konfiguriert für aktiv). Oder ist mit "Passiv" in Wirklichkeit eine
Purebasic Konstante gemeint ???

Gruß

Silvio
PureBasic 4.51 (x86), Windows 7 (32Bit), T5600
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Aktive FTP Verbindung

Beitrag von ts-soft »

Auf #FALSE natürlich :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
SW808
Beiträge: 4
Registriert: 26.02.2011 21:59

Re: Aktive FTP Verbindung

Beitrag von SW808 »

Danke für den Vorschlag.
Mit 0 oder #False funktioniert es leider nicht. In der PureBasic Area ist ein Code Beispiel
(FTP_ListFiles.pb), daß eine saubere Active FTP Verbindung erstellt und alle Dateien auflistet
(Beispiel habe ich getestet - läuft und macht alles richtig(richtige Zielports 20,21)). Leider müßte
ich dann alle restlichen FTP-Funktionen selber dazustricken, was mir eher schwerr fällt.

Tatsächlich scheint es sich bei "Passiv" um eine Flag zu handeln, daß an an den API Befehl
"InternetConnect" übergeben wird. Liegt wohl bei 0x08000000. Allerdings ist der Hacken:
Für aktive Verbindung darf es wohl gar nicht übergeben werden.

#Null als Parameter funktioniert leider auch nicht.

Gruß

Silvio
PureBasic 4.51 (x86), Windows 7 (32Bit), T5600
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Aktive FTP Verbindung

Beitrag von DarkDragon »

Hmm naja, die FTP Funktionen bringen sogar meinen Speedport W700V zum Totalausfall sobald ich auf ein Verzeichnis zugreife bei dem ich keine Rechte habe. Desshalb wäre es vllt. sowieso Sinnvoller etwas eigenes zu schreiben ;-) .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
SW808
Beiträge: 4
Registriert: 26.02.2011 21:59

Re: Aktive FTP Verbindung

Beitrag von SW808 »

Hi,
tja, scheinbar nicht zu ändern. Nur blöd, daß das alles scheinbar
an einem Flag scheitert. Werde das Aktive FTP auf jeden Fall auf die
Wishlist setzen.

Gruß

Silvio
PureBasic 4.51 (x86), Windows 7 (32Bit), T5600
Antworten