XbFTP und Cacheproblem [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

XbFTP und Cacheproblem [erledigt]

Beitrag von peternmb »

Hallo,

ich nutze XbFTP von Phil Ide zum Datenaustausch mit einem Android-Device per FTP.

Meine Android-App erstellt für den Datenaustausch kleine Textdateien, die per FTP auf einem Webserver gespeichert, um dann von meinem Windows-Programm, per XbFTP heruntergeladen und verarbeitet werden. Wenn mein Windows-Programm die Datei heruntergeladen hat, wird diese auf dem Server gelöscht. Die Prüfung, ob auf dem Server eine zu verarbeitende Datei liegt erfolgt von meinem Windows-Programm manuell, es wird jedesmal wenn geprüft wird eine neue FTP-Verbindung aufgebaut und danach wird diese wieder beendet.

Jetzt kommt das Problem: in der von der App erstellten und vom Win-Programm heruntergeladenen Datei steht z.B. der Wert 100. Jetzt aktualisiert meine App die Datei in der dann der Wert 200 steht. Mein Windows-Programm holt die Datei, doch der Inhalt ist immer noch 100. Eine Prüfung der Datei direkt auf dem Webserver zeigt, dass darin der korrekten Wert von 200 steht.

Soweit ich das bisher im Netz gefunden habe muiss vom FTP-Programm eine bestimmte Flag gesetzt werden, damit die Datei nicht aus dem Cache geladen wird - nur wie kann ich das in XbFTP realisieren?
Das habe ich dazu gefunden: https://www.autoitscript.com/forum/topi ... dll-issue/
Zuletzt geändert von peternmb am Do, 28. Dez 2017 11:18, insgesamt 1-mal geändert.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von Koverhage »

Hi,
hat mit XbFTP nichts zu tun. Passiert bei unseren Anwendungen auch.
Das ist ein reines Cacheproblem, manchmal werden die Inhalte erst nach einem Neustart des
Android Gerätes sicht- bzw. kopierbar.
Gruß
Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von brandelh »

Hat die Datei immer den gleichen Namen ?
Wenn ja, was passiert, wenn man die Datei mit dem Explorer herunter lädt (der kann ja auch FTP), ist sie dann immer auf dem aktuellen Stand ?

Ansonsten muss man im XbFTP Quellcode nach den Funktionen sehen die aufgerufen werden (Windows API) und dann nach der Doku von M$ suchen.
Dort sollte dann auch ein solcher FLAG erwähnt werden.

Code: Alles auswählen

#define GENERIC_READ         0x80000000    // das steht schon in der CH Datei
#define INTERNET_FLAG_RELOAD 0x80000000 // das ist die Xbase++ Syntax für die Definition des erwähnten Flags
Forces a download of the requested file, object, or directory listing from the origin server, not from the cache.
The GopherFindFirstFile, GopherOpenFile, FtpFindFirstFile, FtpGetFile, FtpOpenFile, FtpPutFile, HttpOpenRequest,
and InternetOpenUrl functions utilize this flag.
FtpGetFile oder FtpOpenFile wären gute Kandidaten um danach zu suchen.
iNet... Funktionen könnten es auch sein.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von Jan »

Es gibt in der 2.0 eine Funktion FTPClient(), die Alaska recht massiv aufgebohrt hat mit einem der letzten Builds. Eventuell klappt das damit besser?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbFTP und Cacheproblem

Beitrag von ramses »

Hallo Jan

du musst deine Android-App dazu bringen ihren Cache zu leeren bezw. den ftpd-daemon alles neu zu lesen.
Ich hatte vor Jahren die gleichen Probleme, allerdings nicht mit Android, damals war es die beste Lösung die Uhrzeit mit in den Dateinamen einzubauen. Z.B. ftp-down-20171231-083122.dat Damit waren dann gleich alle Cache-Probleme gelöst. Diese Schnittstelle läuft noch immer.

Gruss Carlo
Zuletzt geändert von ramses am Do, 28. Dez 2017 8:37, insgesamt 1-mal geändert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von Jan »

Hallo Carlo,

nicht ich bin der mit dem Cache-Problem ...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbFTP und Cacheproblem

Beitrag von ramses »

Hallo Jan

wenn das Cache Probleme bei deiner Gegenstation liegt kannst du *NICHTS* dagegen tun. Vielleicht hilfts wenn du das Remote-Verzeichnis einige male wechselst damit die Gegenstation alle neu liest....

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von Jan »

Carlo,

noch einmal: Nicht ich bin derjenige mit dem Problem, sondern Peter. Ich hatte lediglich auf eine alternative Funktion hingewiesen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbFTP und Cacheproblem

Beitrag von ramses »

Enschuldige die falsche Nameswahl Jan.
Evtl. liest es ja Peter dennoch.

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von brandelh »

Jan hat geschrieben: Do, 28. Dez 2017 8:24 Es gibt in der 2.0 eine Funktion FTPClient(), die Alaska recht massiv aufgebohrt hat mit einem der letzten Builds. Eventuell klappt das damit besser?
Jan
Ich finde da nur den HTTPClient(), die in der normalen Version hinzugefügt wurde ;-)
FTPClient() ist schon länger in der ASINET enthalten und scheint nicht erweitert worden zu sein. Mir fehlte hier die Möglichkeit ein Inhaltsverzeichnis abzurufen.

PS: mit der FTP Klasse von Marshallsoft, hole ich von einem Web-server erstellte LOG Dateien ab.
Diese lasse ich mir als Liste suchen, lade die Datei herunter und lösche die oben auf dem Server.
Das funktioniert einwandfrei.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von Jan »

Hubert,

schau Dir mal das ChangeLog von Build 853 an. Da sind stapelweise neue Methoden für FTPClient() drin - u. a. auch das von Dir bemängelte :directory(). Es stimmt, das es den FTPClient() schon länger gab. Aber erst mit den Neuerungen ist der gegenüber der Klasse von Phil konkurrenzfähig.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: XbFTP und Cacheproblem

Beitrag von brandelh »

sorry das hab ich übersehen (beim Build 853) ... sehr interessant.
Gruß
Hubert
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: XbFTP und Cacheproblem

Beitrag von peternmb »

vielen Dank für die Hinweise.

so wie Hubert es in einem der ersten Beiträge angedeutet hat funktiomniert es.
Die Dateien können unterschiedliche Namen haben, manchmal sind es auch mehrere Dateien - das stört aber nicht.

Ich habe in die XbFTP.ch diesen Eintrag hinzugefügt:

Code: Alles auswählen

#define FTP_INTERNET_FLAG_RELOAD    0x80000000
Erzwingt das Herunterladen der angeforderten Datei, des Objekts oder der Verzeichnisliste vom Ursprungsserver und nicht vom Cache.
In der XbFTP.prg ersetzt ich in der Methode getFile das anscheinend nicht benötigte

Code: Alles auswählen

default nTransferMode to FTP_TRANSFER_TYPE_UNKNOWN
durch

Code: Alles auswählen

default nTransferMode to FTP_INTERNET_FLAG_RELOAD
PS.: ich setze die 1.90.355 ein
Antworten