当前位置:绿色软件下载下载中心其它源码VC/C++源码 → 软件信息
外国人写的ftp服务器代码
软件类型:源码程序 - 其它源码 - VC/C++源码

软件简介

它可以同时接受多个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; 

下载地址