AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Textdatei "streamen" (Linux Server, Win Client)
Thema durchsuchen
Ansicht
Themen-Optionen

Textdatei "streamen" (Linux Server, Win Client)

Ein Thema von Curry · begonnen am 10. Dez 2010 · letzter Beitrag vom 11. Dez 2010
Antwort Antwort
Curry

Registriert seit: 7. Dez 2010
12 Beiträge
 
#1

Textdatei "streamen" (Linux Server, Win Client)

  Alt 10. Dez 2010, 23:37
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

lg
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Textdatei "streamen" (Linux Server, Win Client)

  Alt 11. Dez 2010, 12:07
Tag der Herr, und herzliche Willkommen in der 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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Curry

Registriert seit: 7. Dez 2010
12 Beiträge
 
#3

AW: Textdatei "streamen" (Linux Server, Win Client)

  Alt 11. Dez 2010, 13:13
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.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Textdatei "streamen" (Linux Server, Win Client)

  Alt 11. Dez 2010, 13:16
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Curry

Registriert seit: 7. Dez 2010
12 Beiträge
 
#5

AW: Textdatei "streamen" (Linux Server, Win Client)

  Alt 11. Dez 2010, 13:52
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"
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: Textdatei "streamen" (Linux Server, Win Client)

  Alt 11. Dez 2010, 15:48
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz