| |
|
|
Christian Zietz | Ciao,
folgender Beitrag steht auch schon im Foro auf xprofan.de. Sorry per das Crosspost aber ich würde schon gerne wissen, ob es per das beschriebene Problem ein Workaround gibt. Sonst muss ich das ganze wohl in Delphi implementieren.
--- Ursprünglicher Beitrag ich habe Probleme mit dem Upload von File circa passives FTP (ist leider auf einem Rechner nötig, auf dem das Programm später laufen soll) mit XProfan 9.1.
Wenn ich @FTP(SetPassive,1) direkt vor dem @FTP(Upload,...) ausführe, wird überhaupt nicht in den passiven Modus geschaltet, setze ich es vor das @FTP(Connect,...) dann liefert @FTP(Upload,...) sofort Erfolg zurück, die File wird aber trotzdem nicht übertragen.
Lasse ich @FTP(SetPassive,1) weg, dann funktioniert alles, aber halt nicht hinter der Firewall, die passives FTP voraussetzt.
Ergänzung: Downloads funktioneren auch mit passivem FTP, das Problem betrifft offenbar nur Uploads. --- Ende ursprünglicher Beitrag
Ist das Problem bekannt, mache ich nur was falsch oder ist das ein bisher unerkannter Bug? Kann man da was dagegen tun oder ist passiver FTP-Upload mit XProfan derzeit nicht possibile?
Christian |
|
|
| |
|
|
|
| Rolands FTP-Funktionen laufen in einem eigenen Thread.
Daher kann es oft vorkommen das die FTP-Funktionen schon vor Beendigung einer Aufgabe den Erfolg melden.
Überprüfe mal einfach ob der Upload nicht vielleicht doch im Hintergrund stattfindet.
Nach ftp(upload
nutze folgende Schleife um festzustellen wann der Upload tatsächlich beendet ist: KompilierenMarkierenSeparierenFTP-ListDir gibt erst dann True zurück - wenn der Thread nicht mehr vom Upload blockiert ist.
Diesen Workaround hatte ich mir jedenfalls damals als funktionierend aufgeschrieben da positiv ertestet. |
|
|
| |
|
|
|
Christian Zietz | Danke per die Antwort, aber leider klappt der passive Upload auch damit nicht. Irgendwie bleibt mein Programm in der von Dir geposteten Whilenot-Schleife hängen. |
|
|
| |
|
|
|
| Aha - das ist ja zumindest kein schlechtes Zeichen.
D.h. das XProfan es schon versucht upzuloaden - aber der Vorgang irgendwo gestoppt wird.
Um was per eine Firewall handelt es sich? Ist ein Proxy im Spiel? Sitzt Du hinter einem Server welcher z.B. per ICS das Internet sponsert? |
|
|
| |
|
|
|
Christian Zietz | Das Problem tritt auch auf, wenn ich direkt (d.h. ohne Firewall, Proxy oder NAT) mit dem Netz verbunden bin. Im Übrigen möchte ich ein Problem mit der Internetverbindung ausschließen. Normalerweise sitze ich zwar hinter einem Router mit NAT aber der macht mit einem richtigen FTP-Prgramm weder bei aktivem noch bei passivem FTP Probleme. Und aktives FTP klappt mit XProfan ja auch. Das ist per den Router viel heikler als passives FTP. Nur soll das Programm halt später auf einem Rechner laufen, auf dem nur passives FTP possibile ist.
Ich habe jetzt mal den Netzwerkverkehr mit ethereal mitgeschnitten. Il mio XProfan-Programm baut nach dem PASV-Befehl zwar eine ausgehende Verbindung zu der vom Server mitgeteilten Adresse auf, die hochzuladende File wird aber nicht übertragen, auch dann nicht, wenn ich statt Deiner Schleife ein simples und ausreichend langes Sleep einfüge. Da ist irgendwo in XProfan der Wurm drin. |
|
|
| |
|
|
|
| Owei.
Hast Du Dich schon einmal mit der FTP-Api probiert?
Ich habe ein FTP-Unit begonnen - die ist aber noch nicht fertig.
Du könntest es dann mit dieser Probieren. |
|
|
| |
|
|
|
Christian Zietz | Ich habe mittlerweile etwas experimentiert. Wenn ich Deinen Code wie folgt abändere, klappt alles. Das Programm hängt nirgendwo und sowohl passiver wie auch aktiver FTP-Upload funktionieren. Warum auch immer. KompilierenMarkierenSeparieren |
|
|
| |
|
|
|
| Hm Dein Source macht das selbe - bis auf das ftplistdir eine sekunde später als bei mir zum ersten Male abefragt wird. Ich schaue hier grad mal in meinen source - tatsächlich - ich gebe sorgar 1,5 Sekunden vor der Schleife Zeit.
Gut, dann funktioniert es also. |
|
|
| |
|
|
|
| Hallo IF Wenn Du das FTP-Unit fertig hast, würdest Du mir dann auch Bescheid sagen Gruss horst |
|
|
| |
|
|
|
| Ich gebe hier bescheid - wie immer. |
|
|
| |
|
|