DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: vic_168999
今日帖子: 2
在线用户: 18
导航: 论坛 -> 网络通讯 斑竹:liumazi,sephil  
作者:
男 gzbchina (gzb) ★☆☆☆☆ -
盒子活跃会员
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.

以上资料仅供参考,决非正规代码。
----------------------------------------------
黑夜中,一眼望去,我就是高手。
作者:
男 gzbchina (gzb) ★☆☆☆☆ -
盒子活跃会员
2004/2/25 16:52:49
2楼: cnxxx大侠:
     谢谢您!不论试用是否成功,都会给我很大帮助的。
----------------------------------------------
关键要开心
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行101.5625毫秒 RSS