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