Hi !
I promise that is the last question :)
Synchronous function "Put" always return false, but file is
succesfully transfered to server...
I don't know why... Please, help :)
Server Source
FFtpServ := TFtpServer.Create(nil);
FFtpServ.OnStorSessionClosed := OnAfterPut;
FFtpServ.OnValidatePut := ValidPut;
FFtpServ.Addr := FAddr;
FFtpServ.Port := FPortFTP;
FFtpServ.TimeoutSecsIdle := 0;
FFtpServ.Start;
procedure TDM.OnAfterPut(Sender: TObject; Client: TFtpCtrlSocket;
Data: TWSocket; AError: Word);
var
Script: string;
begin
if AError = 0 then
begin
Script := '_' + Client.FileName;
F7z.SZFileName := Client.FileName;
F7z.Extract();
FScript.ExecuteFile(Script);
DeleteFile(PChar(Script));
end;
end;
procedure TDM.ValidPut(Sender: TObject; Client: TFtpCtrlSocket;
var FilePath: TFtpString; var Allowed: Boolean);
begin
FilePath := FDir + '\' + ExtractFileName(FilePath);
end;
Client Part
FFtp := TFtpClient.Create(nil);
FFtp.MultiThreaded := True;
FFtp.UserName := 'lab';
FFtp.PassWord := 'lab';
FFtp.Binary := True;
FFtp.Port := DM.FPortFTP;
FFtp.HostName := DM.FHostServ;
FFtp.LocalAddr := DM.FHost;
FFtp.LocalFileName := 'filee'
FFtp.HostFileName := 'filee'
if not FFtp.Connected then
FFtp.Connect;
if FFtp.Connected then
begin
FFtp.TypeSet;
if FFtp.Put then
begin
end;
end;
2011/5/6 Angus Robertson - Magenta Systems Ltd <[email protected]>:
>> *Subject:* Re: [twsocket] FTP Server - Identify moment of Put file
>> *From:* Tomasz Maciejewski <[email protected]>
>> *To:* ICS support mailing <[email protected]>
>> *Date:* Fri, 6 May 2011 12:46:06 +0200
>> Is possible to send file from server to
>> client without request from client ?
>
> Not really, the FTP server only ever responds to commands from clients,
> it has no concept of running commands on it's own.
>
> In theory, if the client keeps a control connection open and sends a
> 'please wait' command, the server could pause for an event and send a
> custom response to the client to allow the client to start a download.
> But this would need custom commands in client and server.
>
> Assuming this is some private application, the easier solution is for the
> client PC to have a small custom server running, even UDP which is very
> easy, and for the main server to use a simple protocol to sends commands
> to the client, which then triggers the FTP download.
> I did this a few years ago to get 500 remote PCs to download new files on
> demand.
>
> Angus
>
> --
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
>
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be