Einzelnen Beitrag anzeigen

Benutzerbild von storm1988
storm1988

Registriert seit: 4. Aug 2005
Ort: Salzburg
91 Beiträge
 
Delphi 6 Professional
 
#1

Problem bei versenden größerer Dateien mit Indy 10

  Alt 30. Aug 2005, 19:00
Seas!

Ich hab mir folgenden Code zusammengebastelt um Datein vom Server an den Client zu senden, mithilfe der Indy 10 Komponente idtcp. Jedoch wenn ich Dateien über ca. 25 MB versende bekomme ich folgende Fehlermeldung: Der Prozess kann nicht auf die Datei zugreifen , da sie von einem anderen Prozess verwendet wird!!

Hier ist mal mein Code:

Client

Delphi-Quellcode:
procedure DateiSendeButtonClick;

var FStream : TFileStream;
    SizeOfIncomingStream : Integer;
    IDS : TidStreamVCL;

begin

  { Die Streams initialisieren - Beim IDS wird FStream gleich eingelesen }
  FStream := TFileStream.Create(Pfad, fmCreate);
  IDS := TidStreamVCL.Create(FStream);

  { Senden }
with frmServer.IdTCPClient1 do
  begin
      SizeOfIncomingStream := Socket.ReadInteger;;
      Socket.ReadStream(IDS, SizeOfIncomingStream);
  end;

  IDS.VCLStream.Position := 0;

  { Nicht vergessen ;-) }
  FStream.Free;
  IDS.Free;
end;
Server:

Delphi-Quellcode:
procedure KopierenToClient (AContext: TIdContext;Pfad : String);
var FSTream : TFileStream;
    SizeOfIncomingStream : Integer;
    IDS : TidStreamVCL;

begin

  FStream := TFileStream.Create(Pfad,fmOpenRead or fmShareDenyWrite)
  IDS := TidStreamVCL.Create(FStream);

  { Empfangen }
  with AContext.Connection do
  begin
      Socket.Write(IDS, 0, true);

  end;




  FStream.Free;
  IDS.Free;
end;
Könnte mir vielleicht sagen wo das Problem liegt, denn eigentlich sollte das versenden von Dateien mit Indy 10 ja auch ohne splitten gehn??

Mfg
  Mit Zitat antworten Zitat