Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich? (https://www.delphipraxis.net/185945-datei-im-netzwerk-kopieren-mit-indy-aber-welche-komponente-eignet-sich.html)

SearchBot 21. Jul 2015 08:04

Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Hallo,

ich habe da ein Projekt, bei dem ich Daten über eine Software-Schnittstelle von einem Messgerät abfragen kann. Das dauert aber lange bei einem gewissen Datenumfang.
Das Messgerät hat Windows2000 drauf und ist über Netzwerk zu erreichen. Es kann aber auch lokal CSV-Dateien speichern, die Schnittstelle hat aber keine (mir bekannten) Befehle, diese Datei auf einen anderen PC zu übertragen. Da hab ich mir gedacht, das geht ja dann auch alternativ über die Netzwerkverbindung.

Weil ich das Gerät aber nicht daheim habe, muss ich ein bisschen blind programmieren. Es geht also "nur" darum, mit einem geeigneten Protokoll auf "einfache" Weise aus dem Dateisystem von Windows2000 eine Textdatei auf einen anderen PC (mit Windows7) zu übertragen. Die Datei ist 50kB groß.

Ich hab mir dann überlegt, es mit einem kleinen Serviceprogramm auf dem Messgerät zu machen, das ich vom Zielrechner anspreche und die Datei anfordere. Das Serviceprogramm sendet es mir dann übers Netzwerkkabel zu.

Hab mir dann gedacht, bevor ich stundenlang in die falsche Richtung arbeite, frag ich die Netzwerkexperten hier mal...

Welches Protokoll wäre also da am besten geeignet, wenn ich nur die IP-Adresse habe und nicht groß mit Passwörtern und Freigaben rumbasteln will?
IPX, Telnet, UDP, HTTP, oder ganz anders?

Danke schon mal...

sh17 21. Jul 2015 08:52

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Du bastelst Dir einen Service der einen HTTP-Server beinhaltet und einen WebService bereitstellt. SOAP, REST,XML-RPC, je nach belieben

frankyboy1974 21. Jul 2015 08:58

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Hallo,

man kann Dateien natürlich auch mittels Http übermitteln, ich würde aber tendenziell zu FTP (File Transfer Protokoll) tendieren.
UDP liegt auf der 4 Schicht des OSI-Modells, und liegt somit unterhalb von HTTP und FTP (5- 7 Schicht), würde ich aber nicht unbedingt empfehlen. Normalweiser verwendet man auf der 3 und 4 Schicht TCP/IP, da hier sicher ist, dass die Daten auch auf der anderen Seite angekommen sind. IPX wäre das Gegenstück zu TCP/IP von Novell. Da du selbst von einer IP-Adresse gesprochen hast, fällt das wohl weg. Telnet wäre möglich, würde ich aber nicht nehmen. Meine Empfehlung wäre FTP oder HTTP, dü würdest also entweder einen entsprechenden Server selbst implementieren (oder eben einen fertigen nehmen Stichwort Apache) und mit dem entsprechenden Client kannst du dann die Dateien abrufen.

mfg

frank

sh17 21. Jul 2015 09:04

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Stimmt, FTP ist mir jetzt glatt durch die Lappen gegangen, gibts ja schon fertig.

haentschman 21. Jul 2015 09:47

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Moin...
Zitat:

Das Messgerät hat Windows2000 drauf
...die Preisfrage ist doch eher was auf dem Windows installiert ist bzw. ob man z.B. seinen eigenen Webserver z.B. installieren könnte. Das einfachste wäre doch wenn die CSV auf einer allgemein verfügbaren Netzwerkfreigabe liegen würde...dann einfach kopieren. 8-)

SearchBot 22. Jul 2015 00:49

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Danke schonmal für diese Ansätze.

Zitat:

Zitat von haentschman (Beitrag 1309349)
Moin...
Zitat:

Das Messgerät hat Windows2000 drauf
...die Preisfrage ist doch eher was auf dem Windows installiert ist bzw. ob man z.B. seinen eigenen Webserver z.B. installieren könnte. Das einfachste wäre doch wenn die CSV auf einer allgemein verfügbaren Netzwerkfreigabe liegen würde...dann einfach kopieren. 8-)

Ja, das war auch meine erste Idee, es wollte aber eine Anmeldung. Da war ich dann erstmal ratlos; wie soll ich das dann in Delphi bewerkstelligen...
Auch dem Messgerät sollte ich nach Möglichkeit besser nichts verändern; allenfalls mein kleines Tool zum Dateien übertragen :wink:

Zitat:

Zitat von frankyboy1974 (Beitrag 1309341)
Hallo,

man kann Dateien natürlich auch mittels Http übermitteln, ich würde aber tendenziell zu FTP (File Transfer Protokoll) tendieren.
UDP liegt auf der 4 Schicht des OSI-Modells, und liegt somit unterhalb von HTTP und FTP (5- 7 Schicht), würde ich aber nicht unbedingt empfehlen. Normalweiser verwendet man auf der 3 und 4 Schicht TCP/IP, da hier sicher ist, dass die Daten auch auf der anderen Seite angekommen sind. IPX wäre das Gegenstück zu TCP/IP von Novell. Da du selbst von einer IP-Adresse gesprochen hast, fällt das wohl weg. Telnet wäre möglich, würde ich aber nicht nehmen. Meine Empfehlung wäre FTP oder HTTP, dü würdest also entweder einen entsprechenden Server selbst implementieren (oder eben einen fertigen nehmen Stichwort Apache) und mit dem entsprechenden Client kannst du dann die Dateien abrufen.

Was würde ich bei Telnet benötigen?
IPX empfand ich früher bei den lokalen Netzwerkspielen das einfachere Protokoll, weil das immer gleich funktioniert hatte, während TCP/IP so oft geklemmt hatte. Würde es vielleicht gehen, da das Messgerät ja direkt an den PC angeschlossen ist (Peer-to-peer), wenn ich auf die IP-Adresse verzichte? Was bräuchte ich dann von den Indy-Komponenten?

haentschman 22. Jul 2015 05:13

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Moin...:P
Zitat:

Auch dem Messgerät sollte ich nach Möglichkeit besser nichts verändern; allenfalls mein kleines Tool zum Dateien übertragen
Dann würde ich einen kleinen TIdHTTPServer machen. Ist am ehesten unkompliziert. Auch dann auf der Client Seite. In der Erweiterung kann man dann auch ggf. eine Verschlüsselung draufsetzen.
:hi:

Dejan Vu 22. Jul 2015 06:59

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Wenn Du die Anmeldeinformation vom Messgerät hast, dann reicht ein Batch:
Code:
net use X: \\123.123.123.123\c$ /user:USERNAME PASSWORD
copy x:\Messgeraetevertzeichnis\Datei c:\woimmerDuDasHabenWillst
Wobei 'X:' ein freier Laufwerksbuchstabe ist und '123...' die IP-Adresse vom Messgerät. Das 'net use' könntest Du auch als Autostart-Batch ausführen. Oder Du löst die Verknüpfung im o.g. Batch wieder mit 'net use X: /DELETE'

Alternativ installierst/aktivierst Du FTP auf dem IIS des Messgeräte-PC. Dann holst Du die Datei entweder über eine FTP-Komponente (wenn Du unbedingt programmieren willst) oder über ein FTP-Batch. Wie das geht, steht hier:
http://www.simplescripts.de/ftp-comm...atch-files.htm

Du kannst natürlich auch ein Programm schreiben. Aber wozu?

haentschman 22. Jul 2015 08:04

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Hallo Dejan Vu,
Zitat:

Auch dem Messgerät sollte ich nach Möglichkeit besser nichts verändern; allenfalls mein kleines Tool zum Dateien übertragen
...der IIS ist zwar eine Möglichkeit aber imho für diesen Zweck mit Kanonen auf Spatzen geschossen. Wie arbeiten doch mit Delphi. Da ist ein Mini HTTP Server quasi ein "Dreizeiler"... :P Da die Daten eh in sein Programm eingelesen werden programmiert er sowieso. 8-)

Dejan Vu 22. Jul 2015 08:24

AW: Datei im Netzwerk kopieren mit Indy - aber welche Komponente eignet sich?
 
Hallo Haentschman.

Ich finde, man arbeitet in erster Linie mit Windows und nicht mit Delphi. Wozu soll man seine Ressourcen für das Schreiben eines Programms verschwenden, das man schreiben, testen, dokumentieren und installieren muss, wenn es etwas Fertiges gibt? Siehe auch https://de.wikipedia.org/wiki/Not-invented-here-Syndrom

IIS ist keine Kanone, FTP kein Spatz. Der IIS ist Bestandteil von Windows 2000. Du benutzt doch auch den Aschenbecher deines Autos, und bastelst Dir keinen eigenen aus Alufolie.

Ich würde FTP aber nur dann nehmen, wenn der Zugriff auf Daten des Gerätes allgemein gewünscht wäre. Ansonsten würde ich die Windows-Bordmittel ('net use' z.B.) nehmen und viieeel Zeit sparen. Wozu in aller Welt sollte man ein YAFT (Yet another File Transfer) Tool schreiben? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr.
Seite 1 von 2  1 2      

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