• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

外国人写的ftp服务器代码

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网



简介

这篇文章向您介绍了一个功能齐全的ftp服务器代码。它可以同时接受多个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;
}

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网