外国人写的ftp服务器代码
- 代码等级:

- 更新日期:2007/04/03 Home Page
- 授权方式:免费版
- 代码大小:185 KB
- 运行环境:Win9X/Win2000/WinXP/Win2003
- 代码语言:简体中文
- 所属类型:国产软件
- 相关地址:暂无联系方式 没有预览图片
- 解压密码:www.39g.com
- 下载统计:
- 代码简介:
它可以同时接受多个ftp连接(多线程)并具有大部分的一些商业ftp服务器的功能。服务器支持所有基本的ftp命令并提供给用户简单的管理接口,支持虚拟目录。
下面是对代码中重点类的描述:
CFTPServer
CFTPServer类是实际上的ftp服务器,它控制着所有其他的为服务器工作的类。尽管CFTPServer是一个基于对话框的程序,但是它并不依赖于UI,所以也可以用于一个服务程序或console程序。
CFTPEventSink
CFTPEventSink类用来“发送”CFTPServer类的事件给主程序,我使用了多继承和虚拟函数。CFTPEventSink类只是一个辅助类,只包括了一些虚拟函数。当你的类继承于CFTPEventSink类时,这些虚拟函数将代表一系列的事件。CFTPServer类需要发送消息通知主程序时,要调用这些函数。
怎样在你的程序中使用CFTPServer类:
1.在工程中加入类的文件。
2.你的主类要继承自CFTPEventSink
3.重载CFTPEventSink类的虚拟函数,这些函数将代表ftp服务器中发出的各个事件。
4.开始服务。
class CMyDlg : public CDialog, CFTPEventSink
{
...
CFTPServer m_FTPSERVER;
virtual void OnFTPUserConnected(DWORD nThreadID,
LPCTSTR lpszUser,
LPCSTR lpszAddress);
virtual void OnFTPUserDisconnected(DWORD nThreadID,
LPCTSTR lpszUser);
virtual void OnFTPStatusChange(int nType,
LPCTSTR lpszText);
virtual void OnFTPReceivedBytesChange(int nBytes);
virtual void OnFTPSentBytesChange(int nBytes);
virtual void OnFTPStatisticChange(int nType,
int nvalue);
...
}
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...
// initialize event sink
m_FTPSERVER.Initialize(this);
// set maximum users to 10
m_FTPSERVER.SetMaxUsers(10);
// accept new connections on port 21
m_FTPSERVER.SetPort(21);
// activate server
m_FTPSERVER.Start();
return TRUE;
}
