![]() |
Textdatei "streamen" (Linux Server, Win Client)
Hallo zusammen :)
Mein Anliegen ist folgendes: Ich will eine Textdatei welche sich auf einem Linux Server befindet in einem relativ kurzen Intervall (~2s) neu auf meinen Rechner laden lassen um sie dort neu verarbeiten zu können. Server-seitig habe ich ein Phyton Script was alle 2 Sekunden eine Textdatei aktualiesiert in der es Vorkommnisse aufzeichnet . . . Einfacher: Textadtei die alle 2 Sekunden neu geschrieben wird. Und auf dem Client läuft das bis jetzt wie folgt: Delphi öffnet über ShellExecute eine Batch Datei - diese Batch Datei ruft dann PSCP (Putty ableger) auf und hohlt sich via SSH die Textdatei vom Server. Ist nicht schön - aber in der Theorie funktioniert es ja - nun ist das Problem das Delphi die Textdatei natürlich nicht öffnen kann wenn sie just in diesem Moment neu beschrieben wird. Ich hatte die Hoffnung das ein Delay von 2 Sekunden zwischen Download und einlesen reicht - aber das is fast unberechnbar weswegen ich jetzt schon einen Delay von 5s nehmen musste - und trotzdem kommt es noch vor das Delphi den fehler "xx.txt konnte nicht geöffnet werden" ausgibt. Ich bin sicher das kann man schöner lösen und hoffe auf euch :wink: lg |
AW: Textdatei "streamen" (Linux Server, Win Client)
Tag der Herr, und herzliche Willkommen in der DP :dp:
also, das mit dem Öffnen liegt wohl eher nicht an Delphi, da Putty ja die Arbeit mit dem Abholen übernimmt, d.h. Putty selbst kann die Datei, während diese geschrieben wird, eben nicht korrekt holen. Somit landet wohl nur eine leere Datei auf dem "Client", wenn überhaupt eine dort landet. Vielleicht meldet Putty hier ja schon einen Fehler. Mit dieser File-Abholen-Geschichte wirst du dir immer solche Probleme einfangen, außer du erweiterst deinen Algorithmus um einige Positionen und prüfst du geladene Datei ausführlich. Aber ob das lohnt ist die andere Frage. Zudem halte ich persönlich von so einem Polling auch nicht wirklich viel. Kann Python mit TCP/IP umgehen?! Dann verbinde Client- und Server-Programm über das Protokoll und verschicke dort die Daten. Du brauchst die Verbindung ja auch nicht immer wieder auf- und abbauen, das sowas kostspielig ist. Halte diese eben so lange, wie der Client offent ist. |
AW: Textdatei "streamen" (Linux Server, Win Client)
Stimmt - werde mal gucken ob ich das Serversetig vllt mit TCP regeln kann.
Die Fehlermeldung selbst kommt immer wenn Delphi einlesen will und die datei gerade gedownloaded wird. Wenn auf dem Server gerade beschrieben wird und gleichzeitig gedownoaded wird hohlt mir PSCP halt einfach eine leere Datei runter. Habe das jetzt vorübergehend einfach erstmal mit einer Fehlerabweisung gemacht damit Delphi mir weiter arbeitet auch wenn es eine Datei nicht öffnen kann. Aber deine Variante ist eleganter (zumal sich gerade bei mir 30x in der Minute pscp öffnet und schließt) Werde probieren das mit Tcp zu regeln. |
AW: Textdatei "streamen" (Linux Server, Win Client)
Darf die Datei eigentlich jeder einsehen, oder sind darin private Daten?! Eine andere Idee wäre es das File via Webserver freizugeben. Wobei ich das mit dem TCP/IP wesentlich besser finde. Bei der Server-Software kann sich ein Client anmeldung und der Server schickt dann jedes Update an jeden Client.
|
AW: Textdatei "streamen" (Linux Server, Win Client)
Ja - daran habe ich auch schon gedacht - nur sind teilweise schon sensible daten.
Wenn das mit TCP nicht klappt werde ich es wohl via Webserver machen und dann alles gut "verstecken" :wink: |
AW: Textdatei "streamen" (Linux Server, Win Client)
Ich weiß zwar nicht, wie das vom Client-Seiten gehandelt werden kann, aber wenn du die Webserver-Idee verfolgst könnte dir unter Umständen htaccess weiterhelfen.
Wenn es sich allerdings um sensible Daten handelt, dann sollte selbst die Übertragung verschlüsselt laufen! Somit ist eine einfache TCP/IP-Verbindung auch schon so eine Sache für sich. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz