Aktuelle Zeit: 09.07.2020 11:09

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: SendFTPFile(), Problem mit Linux 64bit
BeitragVerfasst: 01.10.2016 20:00 
Offline

Registriert: 23.12.2004 18:50
Wohnort: Buchholz
Hallo,

bei der Verwendug von SendFTPFile() mit Parameter asyncron (#True)
für die Hintergrundübertragung wird das Executable unerwartet beendet.

Getestet mit Debian 8 (Jessi) 64bit und Xubuntu 16.04 64bit (in einer VM)
auf verschiedenen FTP-Servern.

Mache ich da einen Gedankenfehler oder fehlt eine "lib" (checkinstall.sh hat nicht gemeckert),
allerdings läuft es ja mit dem Parameter #False

Vielleicht kann sich einer das Beispiel mal anschauen und testen.

Code:
; PureBasic-Version:  5.43-LTS
; ProgrammName:       ftp_test_64bit
; Format:             64bit Linux
;
; Beispiel zum Problem mit SendFTPFile(...) bitte in den Zeile 62-63 auskommentieren
; Absturz nur unter Linux 64bit bei Parameter Asyncron = #True (1)
; auch getestet mit 64bit Version 5.40-LTS, 5.41-LTS, 5.42-LTS, 5.50

EnableExplicit

InitNetwork()

Enumeration
  #ServerID_FTP
EndEnumeration

Define.s ServerName_FTP.s       = "192.168.168.11"  ; bitte entsprechend anpassen
Define.s UserName_FTP.s         = "ftpuser"         ; bitte entsprechend anpassen
Define.s UserKennwort_FTP.s     = "*******"         ; bitte entsprechend anpassen
Define.b AsyncronModus_FTP.b    = #True
Define.l PortNummer_FTP.l       = 21
Define.s ZielVerzeichnis_FTP.s  = "/test/"          ; bitte entsprechend anpassen

Define.s Datei_FTP.s
Define.q Fortschritt_FTP.q

Procedure ZielVerzeichnis_aktivieren(Pfad.s)
  Protected i.l, Aktion.b = #False
  If Right(Pfad.s,1) = "/"
    Pfad.s = Left(Pfad.s, Len(Pfad.s)-1)
  EndIf 
  If Left(Pfad.s,1) <> "/"
    Pfad.s = "/" + Pfad.s
  EndIf
  If Pfad.s = "/"
    Aktion.b = #True
    Debug GetFTPDirectory(#ServerID_FTP) + " ist aktuelles Verzeichnis."
  Else
    For i = 1 To CountString(Pfad.s, "/")
      If SetFTPDirectory(#ServerID_FTP, StringField(Pfad.s, i + 1, "/")) = #False
        If CreateFTPDirectory(#ServerID_FTP, StringField(Pfad.s, i + 1, "/")) = #False
          Debug StringField(Pfad.s, i + 1, "/") + " kann nicht erstellt werden, Abbruch!"
          Aktion.b = #False
        Else
          Debug GetFTPDirectory(#ServerID_FTP) + " wurde erstellt."
          Aktion.b = #True
        EndIf
      Else
        Debug GetFTPDirectory(#ServerID_FTP) + " ist aktuelles Verzeichnis."
        Aktion.b = #True
      EndIf
    Next i
  EndIf
  ProcedureReturn Aktion.b
EndProcedure

If OpenFTP(#ServerID_FTP, ServerName_FTP.s, UserName_FTP.s , UserKennwort_FTP.s, AsyncronModus_FTP.b, PortNummer_FTP.l)
  Debug "Mit FTP-Server: "+ServerName_FTP.s+" verbunden."
  If ZielVerzeichnis_aktivieren(ZielVerzeichnis_FTP.s) = #True
    Datei_FTP.s = OpenFileRequester("Bitte Datei auswählen", "", "*.*", #False)
    If Datei_FTP.s <> ""
      SendFTPFile(#ServerID_FTP, Datei_FTP.s, GetFilePart(Datei_FTP.s), #True)   ;funktioniert NICHT unter Linux 64bit
      ;SendFTPFile(#ServerID_FTP, Datei_FTP.s, GetFilePart(Datei_FTP.s), #False)   ;funktioniert unter Linux 64bit
      Repeat
        Fortschritt_FTP.q = FTPProgress(#ServerID_FTP)
        Debug Fortschritt_FTP.q
        Delay(50)
      Until FTPProgress(#ServerID_FTP) = -3 Or FTPProgress(#ServerID_FTP) = -2
      Debug "Übertragung beendent mit "+Str(FTPProgress(#ServerID_FTP))
    Else
      Debug "Keine Datei zur Übertragung ausgewählt."
    EndIf
  Else
    Debug "Verzeichnis "+ZielVerzeichnis_FTP.s+" konnte auf dem FTP-Server nicht ausgewählt werden."
  EndIf
Else
  MessageRequester("Fehler", "Keine Verbindung zum FTP-Server: "+ServerName_FTP.s)
EndIf
End


Danke
Jürgen


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye