Schrift
[thread]4319[/thread]

Netzwerkprotokoll zum Dateitransfer: Dateien per Perl über Netzwerk kopieren

Leser: 1


<< >> 6 Einträge, 1 Seite
renee
 2005-03-08 17:27
#37876 #37876
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schreibe ein eigenes kleines Protokoll, mit dem Du festlegst, wie ein Befehl lautet, um den Transfer zu starten und wie die Endekennung aussieht!

Nach der Endekennung kannst Du eine Prüfsumme schicken, mit der Du prüfen kannst, ob die Datei komplett und korrekt übertragen wurde...

Such mal nach Socket... Da wirst Du schon einige Threads dazu finden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
ptk
 2005-03-08 19:00
#37877 #37877
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man koennte als erstes die Laenge der Daten vorabschicken, und dann die Daten selbst.
Gast Gast
 2005-03-09 16:25
#37878 #37878
[quote=weismat,09.03.2005, 13:10]Net::FTP ist doch wirklich einfach.
Hast Du Dir das mal angeschaut?[/quote]
Das Problem an der Geschichte ist dann, dass ich auf der Gegenseite einen FTP Server laufen lassen muss. Dieser muss konfiguriert werden. Meine Idee war ein einziges Perlfile, was einfach nur gestartet werden muss und alles handelt.
subsys
 2005-03-08 17:04
#37879 #37879
User since
2005-03-08
27 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich bin gerade dabei ein eingenes Projekt umzusetzen. Und zwar ist es dabei nötig Dateien zwischen mehreren PCs/Servern zu transferieren, wo diese bearbeitet werden.

Nun würde ich aber nicht gerne auf andere Tools zum Dateitransfer zugreifen (ftp, scp, rsync usw.), sondern dies direkt im Perltool einbauen. D.h. die einzelnen Dateien per selber programmierten Server an einen selberprogrammierten Perlclient senden.
Die Server/Client Architektur ist ja nicht das Problem. Hier gibt es eine Reihe von Modulen und Tutorials.

Mein Problem ist nun, wie ich am besten die Dateien lokal auslese, an den Socket übergebe und dann beim Client wieder sauber abspeichere.
Wie kann ich sicherstellen, dass die Datei komplett ist?
Muss ich erst/Ist es sinnvoll die Dateien per Base64 o.ä. zu decodieren, wenn ich diese versende ?
Einzelne Zeichen/Sätze schicken ist ja kein Problem, nur bei richtigen Dateien bin ich etwas wanken geraten.

Gibt es hierfür schon fertige Skripte bzw. Schnipsel an denen ich mich orientieren kann? Hat jemand ein paar Ideen für mich?

Hab mich schon etwas durch google gekämpft, aber nichts Konkretes gefunden bzw. nur die einfachen Sätze "Hin und Herschiebereien".
subsys
 2005-03-08 18:12
#37880 #37880
User since
2005-03-08
27 Artikel
BenutzerIn
[default_avatar]
Okay,

danke für die schnelle Antwort. So mit dem Protokoll hatte ich mir das vorgestellt. Nur habe ich da noch keine richtige Ahnung, wie ich da ansetzen soll oder wie es am einfachsten zu lösen ist:

Lese ich Zeichen für Zeichen?
Dann könnte ich nach ein bestimmten Zeichen "Stop" sagen z.B. kommt "\n" o.ä. die Datei ist zu Ende. Wenn ich jetzt aber ne Datei habe kann es ja passieren, dass dieses Zeichen in dieser vorkommt und der Transfer zu früh beendet wird.

Lese ich immer X Bytes?
Dann könnte ich z.B. sagen, wenn "STOP" übertragen wird, stoppe den Transfer. Problem: was ist, wenn das einlesen nach 10 Bytes zu Ende ist, aber da erst "ST" von "STOP" übertragen wurde.

Meine Idee wäre es, erst die Dateien zu encodieren mit Base64 o.ä. und dann zu senden. Ähnlich wie beim SMTP Protokoll.
Hier werden ja alle "Daten" über eine Verbindung geschickt. Wie läuft das dann bei FTP ab? Wird hier für jede neue Datei eine neue Verbindung geöffnet ?

Befinde ich mich hier auf dem richtigen Weg ?
weismat
 2005-03-09 14:10
#37881 #37881
User since
2003-08-18
142 Artikel
BenutzerIn
[default_avatar]
Net::FTP ist doch wirklich einfach.
Hast Du Dir das mal angeschaut?
<< >> 6 Einträge, 1 Seite



View all threads created 2005-03-08 17:27.