Datein Senden



  • Shade Of Mine schrieb:

    Ich wuerde scp verwenden.

    sehr sinnvoll diese antwort, nicht wahr?

    PS:
    ohne infos, gibts keine Loesung.

    Windows 2003 Server, Windows 7/xp
    Was für Infos brauchst du den noch ?

    Die Datein über Sockets zu senden ist doch keine schlechte Lösung, oder ?
    (Fühle mich irgendie unsicher)

    (Ich will keine Komplettlösung :-))

    Gruss StewieG



  • Die Frage ist eher: Wo ist dein Ziel?
    Willst du ein Programm schreiben? Willst du das machen um etwas zu lernen oder willst du einfach eine schnelle Möglichkeit Dateien zu verschicken? (Da empfehle ich dann one-click-hoster, msn, icq oder(!) mein bereits verlinktes Programm ;))



  • cooky451 schrieb:

    Die Frage ist eher: Wo ist dein Ziel?
    Willst du ein Programm schreiben? Willst du das machen um etwas zu lernen oder willst du einfach eine schnelle Möglichkeit Dateien zu verschicken? (Da empfehle ich dann one-click-hoster, msn, icq oder(!) mein bereits verlinktes Programm ;))

    Ich wollte nur wissen ob es eine Bessere Möglichkeit als über Sockets zu senden gibt?
    So wie ich es beschrieben habe, ich will nicht ein Programm schreiben und danach merken, das ich hätte es viel schneller und einfacher lösen können

    Gruss StewieG



  • Wikipedia schrieb:

    In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet.

    Wird also etwas schwer ohne Socket...

    Wenn du nicht endlich sagst was du machen willst (ein Programm schreiben dass Daten versendet ist nicht wirklich genau - vergleiche zB mal einen Torrentclient mit einem HTTP Server mit Telnet. Diese 3 Sachen versenden alle Daten -> aber dennoch sind die Anforderungen enorm unterschiedlich).

    Du kannst ja auch nicht zum Autohändler gehen und sagen: Wenn ich autofahren will, brauche ich dann ein Auto? Ja klar brauchst du das. Aber je nach ANFORDERUNG brauchst du einen Formel1 Wagen, einen Pickup Truck oder einen Smart.



  • Shade Of Mine schrieb:

    Wikipedia schrieb:

    In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet.

    Wird also etwas schwer ohne Socket...

    Wenn du nicht endlich sagst was du machen willst (ein Programm schreiben dass Daten versendet ist nicht wirklich genau - vergleiche zB mal einen Torrentclient mit einem HTTP Server mit Telnet. Diese 3 Sachen versenden alle Daten -> aber dennoch sind die Anforderungen enorm unterschiedlich).

    Du kannst ja auch nicht zum Autohändler gehen und sagen: Wenn ich autofahren will, brauche ich dann ein Auto? Ja klar brauchst du das. Aber je nach ANFORDERUNG brauchst du einen Formel1 Wagen, einen Pickup Truck oder einen Smart.

    Ich will ein Programm schreiben das z.b eine Exe Datei versendet, vom Server zum Client, der Server soll erst senden wenn er vom Client z.b einen String mit dem gleichen Wert, der beim Server in einer Textdatei liegt empfängt.
    (so etwas wie ein Passwort)

    Am besten soll der Client noch überprüfen ob er die Datei schon hat. (z.B Attribut geändert am: vergleichen)

    Ich hoffe ich habe es verständlich erklärt. 🙂
    Gruss StewieG



  • StewieG schrieb:

    Ich hoffe ich habe es verständlich erklärt. 🙂

    Du hast gerade gefragt:
    Ich will von Punkt A nach Punkt B kommen: soll ich zufuss, mit Auto oder per Schiff mich fortbewegen.

    Ich glaube das hier hat echt keinen Sinn.
    Wenn du Hilfe willst, dann musst du erklären was du machen willst.

    zB:
    Ich will ein Backuptool schreiben dass in regelmäßigen Abständen bestimmte Directories auf dem Client überprüft und Änderungen an den Server überträgt. Es handelt sich dabei um alle möglichen Dateien und mir ist am wichtigsten dass die Daten 100% korrekt sind weil es zu Verbindungsabbrüchen kommen kann, Performance der Dateiübertragung ist nicht so wichtig.

    Dann kann man dir eine sinnvolle Antwort geben bzw. vernünftig Nachfragen.



  • Shade Of Mine schrieb:

    StewieG schrieb:

    Ich hoffe ich habe es verständlich erklärt. 🙂

    Ich will ein Backuptool schreiben dass in regelmäßigen Abständen bestimmte Directories auf dem Client überprüft und Änderungen an den Server überträgt. Es handelt sich dabei um alle möglichen Dateien und mir ist am wichtigsten dass die Daten 100% korrekt sind weil es zu Verbindungsabbrüchen kommen kann, Performance der Dateiübertragung ist nicht so wichtig.

    Ich will ein Tool schreiben dass beim Start vom Client der Server überprüft ob Änderungen an bestimmten Directories(auf dem Server) gemacht wurden, wenn ja überträgt der Server die Datein an den Client.
    Performance ist nicht so wichtig. Datein sind etwa max. 50MB gross.
    Betriebssytem wäre Windows Server 2003/2008 und Windows XP/7, gut wäre es wenn es noch mit Linux kompatibel wäre, ist aber nicht so wichtig.
    Das wichtigste ist das die Datein vollständig ankommen.
    Da die Datein so gross sind würde ich noch die Datein in ein Archiv Packen, (automatisch) und nach dem Senden wieder löschen.
    Sollte ich die Dateiattribute(geändert am:) auslesen, oder mit einem sha Algorithmus(Das Archiv). -> Änderungen am Directory

    Nun stell ich mir die Frage, wie ich das am besten lösen könnte, mit Sockets, einem Script oder hatt jemand noch eine bessere Idee.(ausser FTP)
    Ob dies mit einem Script möglich wäre weiss ich nicht.

    Gruss StewieG



  • Werden die Dateien über das Internet versendet oder handelt es sich um ein lokales Netzwerk?

    Eine besonders gute Kompression wirst du bei ausführbaren Dateien eventuell nicht erreichen. Das solltest du vorher testen. Wenn du dabei nicht viel gewinnst, dann würde ich auf die Kompression gänzlich verzichten.

    Ob eine Änderung vorliegt, kannst du mit einem SHA-Hash berechnen, ja. Das geht auch sehr zügig und sollte kein Problem darstellen. Dabei solltest du aber unbedingt von der Datei selber und nicht von einer komprimierten Datei den Hash berechnen. Ansonsten müsstest du ja vor der Berechnung des Hashes immer erst komprimieren, um überprüfen zu können, ob eine Änderung gemacht wurde. Das kostet unnötig Zeit. 😉

    Da die Dateien korrekt ankommen müssen, solltest du auf das TCP-Protokoll aufsetzen.

    Wenn das Programm plattformunabhängig sein soll, dann würde ich dir nicht unbedingt C/C++ empfehlen. Ich denke, dass du mit einer Scriptsprache besser dran bist. Vielleicht ist Perl ja etwas für dich. Du musst mal schauen, ob die Sprache alle notwendigen Funktionalitäten bietet. Aber ich denke mal schon.



  • Was hat denn die Netzwerkkommunikation mit dem OS zu tun? Ich kann doch auch ohne Probleme mit einem Windowsrechner einen Linux-HTTP-Server(also ein Server mit Linux auf dem ein HTTP-Server läuft) kommunizieren. Ich würde als Protokoll einfach ein textbasiertes Protokoll nehmen (wenn man sowas hat wie "GET datei" is das herzlich egal ob der client/Server Win,Linux,macOS oser was weiß ich hat (solange der ASCII versteht)



  • linux_c89 schrieb:

    Was hat denn die Netzwerkkommunikation mit dem OS zu tun? Ich kann doch auch ohne Probleme mit einem Windowsrechner einen Linux-HTTP-Server(also ein Server mit Linux auf dem ein HTTP-Server läuft) kommunizieren. Ich würde als Protokoll einfach ein textbasiertes Protokoll nehmen (wenn man sowas hat wie "GET datei" is das herzlich egal ob der client/Server Win,Linux,macOS oser was weiß ich hat (solange der ASCII versteht)

    Es geht um die Programmierung und nicht um die Kommunikation an sich. Und diese ist eben abhängig vom OS! Jetzt hat man natürlich Glück, dass sich Linux und Windows an den Berkeley Sockets orientieren und man vergleichsweise wenig Code ändern muss.

    Aber spätestens beim Auslesen von Verzeichnissen ist man mit C/C++ im Nachteil.

    Eine plattformunabhängige Scriptsprache kann viele dieser Dinge eben viel einfacher erledigen. Und das ist es ja worauf es ankommt. Das die Anwendung möglichst schnell und sicher umgesetzt wird. Und wenn man dann "zufällig" noch plattformunabhängig programmieren kann, dann ist das doch wie ein 6-er im Lotto.


Anmelden zum Antworten