So ich hab des verschicken mit die Datein so umgeschrieben, dass ich diese vom Server zum Client schicken kann. Jedoch wenn die die Datein größer als ca. 24 MB werden bekomme ich folgende Fehlermeldung : Der Prozess kann nicht auf die Datei zugreifen , da sie von einem anderen Prozess verwendet wird!!.
Hier mal mein umgeschriebener Source 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;
Und für den 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 jetzt vielleicht wer sagen wo, dass Problem liegt?????
Mfg st0rm