📄 ftpsrv.pas
字号:
Directory : String;
var Allowed : Boolean); virtual;
procedure TriggerBuildDirectory(Client : TFtpCtrlSocket;
var Params : TFtpString;
Detailed : Boolean);
procedure TriggerAlterDirectory(Client : TFtpCtrlSocket;
var Params : TFtpString;
Detailed : Boolean);
procedure TriggerSendAnswer(Client : TFtpCtrlSocket;
var Answer : TFtpString); virtual;
procedure TriggerClientConnect(Client : TFtpCtrlSocket; AError : Word); virtual;
procedure TriggerClientDisconnect(Client : TFtpCtrlSocket; AError : Word); virtual;
procedure TriggerClientCommand(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure TriggerStorSessionConnected(Client : TFtpCtrlSocket;
Data : TWSocket;
AError : Word); virtual;
procedure TriggerStorSessionClosed(Client : TFtpCtrlSocket;
Data : TWSocket;
AError : Word); virtual;
procedure TriggerValidatePut(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean); virtual;
procedure TriggerValidateDele(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean); virtual;
procedure TriggerValidateRmd(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean); virtual;
procedure TriggerValidateRnFr(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean); virtual;
procedure TriggerValidateRnTo(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean); virtual;
procedure TriggerRetrSessionConnected(Client : TFtpCtrlSocket;
Data : TWSocket;
AError : Word); virtual;
procedure TriggerRetrSessionClosed(Client : TFtpCtrlSocket;
Data : TWSocket;
AError : Word); virtual;
procedure TriggerValidateGet(Client : TFtpCtrlSocket;
var FilePath : TFtpString;
var Allowed : Boolean); virtual;
procedure TriggerStorDataAvailable(Client : TFtpCtrlSocket;
Data : TWSocket;
Buf : PChar;
Len : LongInt;
AError : Word); virtual;
procedure TriggerRetrDataSent(Client : TFtpCtrlSocket;
Data : TWSocket;
AError : Word); virtual;
procedure TriggerGetUniqueFileName(Client : TFtpCtrlSocket;
var FileName : TFtpString); virtual;
function GetClientCount : Integer; virtual;
function GetClient(nIndex : Integer) : TFtpCtrlSocket; virtual;
function GetActive : Boolean;
procedure SetActive(newValue : Boolean);
procedure AddCommand(const Keyword : String;
const Proc : TFtpSrvCommandProc); virtual;
procedure WMFtpSrvCloseRequest(var msg: TMessage);
message WM_FTPSRV_CLOSE_REQUEST;
procedure WMFtpSrvClientClosed(var msg: TMessage);
message WM_FTPSRV_CLIENT_CLOSED;
procedure WMFtpSrvAbortTransfer(var msg: TMessage);
message WM_FTPSRV_ABORT_TRANSFER;
procedure WMFtpSrvCloseData(var msg: TMessage);
message WM_FTPSRV_CLOSE_DATA;
procedure WMFtpSrvStartSend(var msg: TMessage);
message WM_FTPSRV_START_SEND;
procedure CommandDirectory(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString;
Detailed : Boolean);
procedure CommandUSER(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandPASS(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandQUIT(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandNOOP(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandLIST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandNLST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandDELE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandSIZE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandREST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandRNFR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandRNTO(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandPORT(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandSTOR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandRETR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandTYPE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandCWD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandChangeDir(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandMKD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandRMD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandCDUP(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandXPWD(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandPWD (Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandSYST(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandABOR(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandPASV(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandAPPE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandSTRU(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandMDTM(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandMODE(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandOverflow(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
procedure CommandSTOU(Client : TFtpCtrlSocket;
var Keyword : TFtpString;
var Params : TFtpString;
var Answer : TFtpString); virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Start;
procedure Stop;
procedure Disconnect(Client : TFtpCtrlSocket);
procedure DisconnectAll;
procedure DoStartSendData(Client: TFtpCtrlSocket); virtual;
procedure WndProc(var MsgRec: TMessage);
{ Check if a given object is one of our clients }
function IsClient(SomeThing : TObject) : Boolean;
property ServSocket : TWSocket read FServSocket;
property Handle : HWND read FWindowHandle;
property ClientCount : Integer read GetClientCount;
property Active : Boolean read GetActive
write SetActive;
property ClientClass : TFtpCtrlSocketClass
read FClientClass
write FClientClass;
{ Client[] give direct access to anyone of our clients }
property Client[nIndex : Integer] : TFtpCtrlSocket
read GetClient;
published
property Addr : String read FAddr
write FAddr;
property Port : String read FPort
write FPort;
property Banner : String read FBanner
write FBanner;
property UserData : LongInt read FUserData
write FUserData;
property MaxClients : LongInt read FMaxClients
write FMaxClients;
property OnStart : TNotifyEvent
read FOnStart
write FOnStart;
property OnStop : TNotifyEvent
read FOnStop
write FOnStop;
property OnAuthenticate : TFtpSrvAuthenticateEvent
read FOnAuthenticate
write FOnAuthenticate;
property OnClientDisconnect : TFtpSrvClientConnectEvent
read FOnClientDisconnect
write FOnClientDisconnect;
property OnClientConnect : TFtpSrvClientConnectEvent
read FOnClientConnect
write FOnClientConnect;
property OnClientCommand : TFtpSrvClientCommandEvent
read FOnClientCommand
write FOnClientCommand;
property OnAnswerToClient : TFtpSrvAnswerToClientEvent
read FOnAnswerToClient
write FOnAnswerToClient;
property OnChangeDirectory : TFtpSrvChangeDirectoryEvent
read FOnChangeDirectory
write FOnChangeDirectory;
property OnMakeDirectory : TFtpSrvChangeDirectoryEvent
read FOnMakeDirectory
write FOnMakeDirectory;
property OnBuildDirectory : TFtpSrvBuildDirectoryEvent
read FOnBuildDirectory
write FOnBuildDirectory;
property OnAlterDirectory : TFtpSrvBuildDirectoryEvent
read FOnAlterDirectory
write FOnAlterDirectory;
property OnStorSessionConnected : TFtpSrvDataSessionConnectedEvent
read FOnStorSessionConnected
write FOnStorSessionConnected;
property OnRetrSessionConnected : TFtpSrvDataSessionConnectedEvent
read FOnRetrSessionConnected
write FOnRetrSessionConnected;
property OnStorSessionClosed : TFtpSrvDataSessionConnectedEvent
read FOnStorSessionClosed
write FOnStorSessionClosed;
property OnRetrSessionClosed : TFtpSrvDataSessionConnectedEvent
read FOnRetrSessionClosed
write FOnRetrSessionClosed;
property OnRetrDataSent : TFtpSrvRetrDataSentEvent
read FOnRetrDataSent
write FOnRetrDataSent;
property OnValidatePut : TFtpSrvValidateXferEvent
read FOnValidatePut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -