Announcement

Collapse
No announcement yet.

Delphi5: Dateien im Netzwerk senden und laden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi5: Dateien im Netzwerk senden und laden

    Hallo Delphianer,
    bis jetzt habe ich Delphi-Anwendungen geschrieben, die local auf Rechnern liefen. Ich möchte jetzt eine Anwendung schreiben, die über das Netzwerk Dateien von einem Rechner zu einem anderen Rechner sendet oder lädt.

    Ich habe es schon mit der Delphis FTP-Demo versucht, komme da aber irgendwie nicht zum Erfolg. Vielleicht war FTP ja auch der falsche Weg.

    Hättest Du einen Hinweis, Tip, Link oder sonstige Quellen, wo ich weiterführende Information erhalte?

    Ich danke Dir für Deine Unterstützung.
    Mfg.
    Uwe
    [email protected]

  • #2
    Hi!

    Für FTP muß auf dem anderen Rechner natürlich auch ein FTP-Server laufen.

    Was wäre denn am ehesten Deine Lösung:
    Die Dateien einfach über die normale Netzwerkfreigabe auf dem anderen Rechner speichern?
    Die nächste Lösung wäre noch, daß Du einfach einen Socketserver aufmachst (auf beiden Rechnern) und dann mit eigenem Protokoll (sprich: zuerst den Pfad und den Dateinamen, dann die Datei selbst) einfach die Sachen rüberstreamst).

    cu
    Timo

    P.S.: Bei ganz konkreten Fragen: -><a href="mailto:[email protected]">email</a&gt

    Comment


    • #3
      Hallo,

      ich verschiebe groessere Datenmengen via Winsocketverbindungen zwischen verschiedenen Rechnern im Netzwerk. Wichtig : TCP/IP muss natuerlich installiert sein !
      Dafür empfiehlt sich der Einsatz der TWSocket-Komponente von F.Piette (maechtig gute Freeware Bibliothek !!!!!)
      Einfach einen Winsocket-Listener auf einen Port binden und ueber einen Client auf die IP-Adresse und den gewählten Port verbinden. Dann mittels der Funktionen SendStr (einfach nur mal einen String verschicken) oder
      Send (beliebige Datenstrukturen) Daten verschicken.

      (http://www.rtfm.be/fpiette/indexuk.htm)

      MfG Martin Klueve

      Comment


      • #4
        @Timo Kaluza

        Hallo

        Kannst Du mir nähere Infos zum Datei-Streaming unter Delphi geben? Die Datei wird bei mir auf dem Zielrechner immer in den Hauptspeicher geladen. Bei großen Dateien geht das schief, da der Speicher irgendwann mal voll ist. Mir wäre es lieb wenn der Stream gleich auf Platte geschrieben wird. Ich benutze Win98. Kannst Du mir weiterhelfen? Ein kleiner Beispielcode wäre sehr hilfreich.

        Ich danke Dir im vorraus.

        Tschüß
        Michae

        Comment


        • #5
          <pre>

          procedure CopyFile(const Source, Dest: String);
          var
          D,S: TStream;
          begin
          S := TFileStream.Create(Source, fmOpenRead or fmShareDenyWrite);
          try
          D := TFileStream.Create(Dest, fmCreate);
          try
          D.CopyFrom(S, S.Size);
          finally
          D.Free;
          end;
          finally
          S.Free;
          end;
          end;<br>

          // oder per hand<br>

          procedure CopyFile(const Source, Dest: String);
          var
          D,S: TStream;
          Buffer: array[0..1023] of Byte;
          BytesRead: LongInt;
          begin
          S := TFileStream.Create(Source, fmOpenRead or fmShareDenyWrite);
          try
          D := TFileStream.Create(Dest, fmCreate);
          try
          repeat
          BytesRead := S.ReadBuffer(Buffer, SizeOf(Buffer));
          D.WriteBuffer(Buffer, BytesRead);
          until BytesRead = 0;
          finally
          D.Free;
          end;
          finally
          S.Free;
          end;
          end;

          </pre>

          .CopyFrom() macht aber das gleiche wie die zweite proc.

          gruß Hage

          Comment

          Working...
          X