|
|
导航: |
论坛 -> 网络通讯
斑竹:liumazi,sephil |
|
作者: |
|
2004/2/24 14:43:16 |
标题: |
求教TidFTPServer控件的用法,如何构建Server端程序 |
浏览:5310 |
|
加入我的收藏 |
楼主: |
Delphi 7提供了Indy控件组,但TidFTPServer控件只提供两个方法:Create和Destroy,也有若干属性和事件。但不知道如何用TidFTPServer控件编写Server端程序,一时也找不到相关资料。求教个位了。谢谢
----------------------------------------------
关键要开心 |
作者: |
cnxxx (我本高手) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/2/24 15:00:51 |
1楼: |
通过察看他的源代码可以大致猜出来如何实现:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer, IdFTPServer, IdSocketHandle, IdUserAccounts, IdFTPList;
type TForm1 = class(TForm) IdFTPServer1: TIdFTPServer; Button1: TButton; Label1: TLabel; edPort: TEdit; Button2: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure IdFTPServer1ChangeDirectory(ASender: TIdFTPServerThread; var VDirectory: string); procedure IdFTPServer1ListDirectory(ASender: TIdFTPServerThread; const APath: string; ADirectoryListing: TIdFTPListItems); procedure IdFTPServer1Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var Binding: TIdSocketHandle; userAccount: TIdUserAccount; userManager: TIdUserManager; begin //IdFTPServer1.AllowAnonymousLogin := true; if IdFTPServer1.UserAccounts = nil then IdFTPServer1.UserAccounts := TIdUserManager.Create(IdFTPServer1);
IdFTPServer1.UserAccounts.Accounts.Clear; userAccount := IdFTPServer1.UserAccounts.Accounts.Add; userAccount.UserName := '123'; userAccount.Password := '123'; userAccount.Attributes.Add('d:\temp');
IdFTPServer1.Bindings.Clear; Binding := IdFTPServer1.Bindings.Add; Binding.Port := 21; Binding.IP := '127.0.0.1'; IdFTPServer1.Active := true; Button1.Enabled := false; Button2.Enabled := true; end;
procedure TForm1.Button2Click(Sender: TObject); begin IdFTPServer1.Active := false; Button1.Enabled := true; Button2.Enabled := false; end;
procedure TForm1.IdFTPServer1ChangeDirectory(ASender: TIdFTPServerThread; var VDirectory: string); begin // ASender.HomeDir := 'd:\temp'; // VDirectory := ASender.CurrentDir; Memo1.Lines.Add(VDirectory); end;
procedure TForm1.IdFTPServer1ListDirectory(ASender: TIdFTPServerThread; const APath: string; ADirectoryListing: TIdFTPListItems); var item: TIdFTPListItem; begin item := ADirectoryListing.Add; item.FileName := 'old'; item.ItemType := ditDirectory; Memo1.Lines.Add('APath='+APath); end;
procedure TForm1.IdFTPServer1Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin Memo1.Lines.Add(AStatusText); end;
end.
以上资料仅供参考,决非正规代码。
----------------------------------------------
黑夜中,一眼望去,我就是高手。
|
作者: |
|
2004/2/25 16:52:49 |
2楼: |
cnxxx大侠: 谢谢您!不论试用是否成功,都会给我很大帮助的。
----------------------------------------------
关键要开心
|
|