Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Dateigröße per FileStream-Übertragung

  Alt 15. Apr 2005, 20:52
Hallo,

ich hab ein kleines Problem:
ich habe zwei Programme - eines mit ServerSocket (Server), das andere mit ClientSocket (Client)

Der Server sendet an den Client eine Datei.
Code Server:
Delphi-Quellcode:
      try
        //Datei senden
        Serversocket.Socket.Connections[ausgewaehlter_Client].SendStream(
        TFileStream.Create(Edit_Quelle_Datei.Text, fmOpenRead or fmShareDenyWrite));
      finally
        // leer
      end;
Code Client:
Delphi-Quellcode:
           //Zieldatei erzeugen
           ZielDatei := TFileStream.Create(SaveFile, fmCreate);

           //Variablen beschreiben
           ProgressBar_Update.Position := 0;
           pbReceived := fSize;

           //Datei empfangen und speichern
           while True do
            begin
              nReceived := Socket.ReceiveBuf(Buffer, sizeof(Buffer));
              If nReceived <= 0 then
                Break
              else
                ZielDatei.WriteBuffer(Buffer, nReceived);

              delay(300);

              pbReceived := pbReceived - nReceived;
              ProgressBar_Update.Position := 100 - ((pbReceived * 100) div fSize);

              Application.ProcessMessages;
            end;
          finally
            //Variablen leeren
            ZielDatei.Position := 0;
            Buffer := '';

            //ZielDatei freigeben und löschen
            FreeAndNil(ZielDatei);
Der Server übermittelt aber, bevor die Datei übertragen wird, die Größe der zu übertragenden Datei.

Nachdem der Client die Datei empfangen hat, prüft dieser ob 1. die Datei vorhanden ist und 2. ob die Größe der empfangenen Datei gleich der Größe ist, die zuvor übermittelt wurde.

Und da hab ich ein Problem. Es kann sein, dass die Größen nicht übereinstimmen.


Hat jemand ne Ahnung was es sein könnte, dass die Größen nicht übereinstimmen?
Kann es sein, dass es durch das Senden mit dem Stream zu Veränderung der Dateigröße kommen kann?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat