Seite 1 von 1
FTP :: OpenFTP()
Verfasst: 26.05.2011 12:55
von Mr.X
OpenFTP() dauert bei mir sehr lange. Bis zu 10sek. ist das Programm blockiert. Die Verbindung wird dann aufgebaut und SendFTPFile(...) funktioniert; bis auf die Tatsache, daß im Asyncron-Modus der Wert #PB_FTP_Finished nicht erreicht wird und der Start des Transfers (Ergebnis = FTPProgress(ftpNo)) ebenfalls sehr lange dauert.
"ftpNo = OpenFTP(#PB_Any, FTP_Server$, FTP_User$, FTP_Pwd$)"
Hast jemand eine Idee wo das Problem liegen könnte?
Re: FTP :: OpenFTP()
Verfasst: 26.05.2011 13:33
von Kiffi
Mr.X hat geschrieben:Hast jemand eine Idee wo das Problem liegen könnte?
welchen Server konnektierst Du? Die Ftp-Lib hat Probleme mit Microsoft Ftp-Servern.
Ansonsten kannst Du mal testen, ob es besser wird, wenn das Passive-Flag gesetzt ist.
Grüße ... Kiffi
Re: FTP :: OpenFTP()
Verfasst: 26.05.2011 13:34
von Bisonte
Mr.X hat geschrieben:... daß im Asyncron-Modus der Wert #PB_FTP_Finished nicht erreicht wird...
... ist ein bekannter Fehler in PB
Re: FTP :: OpenFTP()
Verfasst: 26.05.2011 13:58
von Mr.X
Kiffi hat geschrieben:welchen Server konnektierst Du? Die Ftp-Lib hat Probleme mit Microsoft Ftp-Servern.
Kann jetzt spontan nicht beantworten, welche Server Strato einsetzt.
Ansonsten kannst Du mal testen, ob es besser wird, wenn das Passive-Flag gesetzt ist.
Keine Verbesserung. Hatte ich bereits zuvor getestet, das Passive-Flag explizit zu setzen und aich Port 21 zu benutzen, obwohl beide Einstellungen von PB ja als default gesetzt sein sollen.
Re: FTP :: OpenFTP()
Verfasst: 26.05.2011 14:16
von Mr.X
Der betreffende Code-Abschnitt ...
Code: Alles auswählen
Procedure FTP_Upload()
Debug "Upload"
ftpNo = 1
StatusBarText(#STB_Main, 2, "öffne FTP-Verbindung ...")
ftpNo = OpenFTP(#PB_Any, #FTP_Server, #FTP_User, #FTP_Pwd, #True, 21)
Debug ftpNox
If ftpNo
Result = SetFTPDirectory(ftpNo, #FTP_Directory)
Debug Result
Debug RWA_Datapath$ +"RWA_Liste.DAT"
Result = SendFTPFile(ftpNo, RWA_Datapath$ +"RWA_Liste.DAT", "rwa_liste.dat", #True)
; Größe ist kleiner 10 KB
Debug Result
TimeStart = Date()
Repeat
ftp_Transfer = FTPProgress(ftpNo)
Select ftp_Transfer
Case #PB_FTP_Started
Debug "starting ftp"
Case #PB_FTP_Error
AbortFTPFile(ftpNo)
Break
Case #PB_FTP_Finished
Debug "finished ftp"
Default
Delay(100)
Debug ftp_Transfer
EndSelect
; ohne Timeout kein Ende
If (Date() - TimeStart) > 30
StatusBarText(#STB_Main, 2, "Transfer abgebrochen (TimeOut!)")
Debug "Timeout!"
Delay(2000)
Break
EndIf
While WindowEvent() : Wend
Until ftp_Transfer = #PB_FTP_Finished
Result = SendFTPFile(ftpNo, RWA_Datapath$ +"RWA_TimeStamp", "rwa_timestamp", #False)
Debug Result
CloseFTP(ftpNo)
EndIf
EndProcedure
Debugger Ausgabe
- R:\RWA\RWA_Liste.DAT
init network
1
---
1
2
Upload
0
1
R:\RWA\RWA_Liste.DAT
1
starting ftp
starting ftp
[...]
starting ftp
starting ftp
Timeout!
1