Einzelnen Beitrag anzeigen

Biggs

Registriert seit: 14. Apr 2003
2 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 20. Jun 2003, 02:55
Also, sagen wir mal du hast nen Commandhandler gemacht der auf das Kommando download reagiert, hast als CmdDelimiter ein Leerzeichen genommen und der Client sendet :

SendCMD('Download ' + edit1.text)

Beim server ergibt das den folgenden Event :

procedure TfrmMain.IdTCPServerDownloadCommand(ASender: TIdCommand);
var
cFileName: String;
fStream: TFileStream;
begin
cFileName := ASender.Params[0];

Und jetzt hast du den Filenamen, den der Client angefordert hat.
Alle Parameter, die hinter dem CmdLimiter folgen, werden als
Params[0]...Params[n] angesehen, je nachdem, wieviele Parameter du dem Command hast folgen lassen, das lässt sich mit Params.Count feststellen.

Und jetzt brauchst du ja nur die Datei zu senden, z.B. so :

fStream := TFileStream.Create(cFileName,fmOpenRead + fmShareDenyNone);
ASender.Thread.Connection.OpenWriteBuffer;
ASender.Thread.Connection.WriteStream(fStream);
ASender.Thread.Connection.CloseWriteBuffer;

HTH

Henri
  Mit Zitat antworten Zitat