- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京理工大学计算机网络实践ftp客户端实验报告.doc
实验五FTP客户端程序
实验目的
文件传送协议FTP是Internet中广泛使用的服务协议之一,FTP协议是客 户/服务器之间进行文件传递的协议。
?理解FTP协议的工作原理
?掌握FTP客户程序的编程方法
?理解在FTP传输过程中建立的两个连接
实验内容
利用WinSock编程接口编写FTP客户程序,在用户界面中给出必耍的FTP 服务器信息:FTP服务器的IP地址、用户名、口令等,通过FTP协议实现指定 文件的上载和下载操作。
实验环境
程序运行环境为以太网,采用TCP/IP协议栈,网络操作系统为Windows, 具有Internet连接能力。程序开发环境为vs2012。
实验步骤
步骤1需求分析
FTP客户程序功能为:
FTP客户程序首先显示用户界面,可以指定FTP服务器的地址、用户名和 口令等信息
通过FTP协议接收FTP服务器的当前目录列表,并显示本地和远程目录列 表信息
可以实现本地和远程目录的切换
可以实现文件的上载和下载操作 步骤2 FTP客户程序开发
用Visual C++编写FTP客户程序,利用WinSock编程接口实现FTP协议通 信。FTP客户程序首先显示用户界而,使用户可以指定FTP服务器和用户、口令 信息(可以采用匿名方式),点击连接按钮后,向FTP服务器的TCP 21号端口建 立TCP连接,在控制连接上发送FTP命令,首先获得本地和远程系统的0录列表并显示,可以进行目录切换等操作,指定上、下载的文件建立数据连接进行文件 传送。
步骤3编译和执行程序
将FTP客户程序编译、连接成执行程序,运行FTP客户程序。填写校园网的 服务器1P和用户、口令信息,进行各种FTP操作(文件上载、下载)。
具体实现
(1)数据结构分析
>定义Fileltem结构来保存文件信息
typedef struct FileTtem
{
int nltem; //在列表框中的索引
BOOL bDir; //判断是否为文件夹
CString strFileName; // 文件名
}FTLETTEM;
>主对话框类完成FTP的大部分功能
其中:
> ID_control成员变量:
CListCtrlCString CString CStringCListCtrl m_ctrlRemoteFiles; // IDC_LIST_REMOTE
CListCtrl
CString CString CString
m_ctrlLocalFiles; // IDC_LIST_LOCAL 映射的列表型变量
mstrPassword; m strScrvcr; m^strUserName;// IDC—PASSWORD 映射的 CString 型变量 // IDC SERVER映射的CString型变量
mstrPassword; m strScrvcr; m^strUserName;
>其他添加功能所需成员变量:
//会话对象 //连接对象 //远程査找文件对象 //本地查找文件对象
//会话对象 //连接对象 //远程査找文件对象 //本地查找文件对象
//本地文件0录的上上一层0录
CString m_strkocalParentRoot;
CString m strRcmotcParcntRoot; //远程文件目隶的上上一层目隶
CArrayFILEITEM, FILEITEMm_arrLocalFiles; // 保存本地文件信息
CArrayFTLETTEM, FTLETTEMm_arrRemoteFi 1 es; // 保存远程文件信息
成员函数:
/*初始化程序V
BOOL CMyFtpDlg::OnInitDialog()
A给列表控件CListCtrl增加标题头*/
void CMyFtpDlg::AddHeaders(CListCtrl* pLstCtrl)
A给列表框增加一条记录*/
void CMyFtpDlg::AddItem(CListCtrl* pLstCtrl, int nlndex,BOOL bDir,CString strText)
/* 响应 “download” 按钮 */
void CMyFtpDlg::0nDownload()
A响应“Upload”按钮*/
void CMyFtpDlg: :0nllpload ()
/*下载单个文件*/
void CMyFtpDlg::DownFile(FILEITEM fileltem)
/*上传单个文件*/
void CMyFtpDlg::UpFile(FILEITEM fileltem)
/*连接ftp服务器*/ void CMyFtpDlg::0nConnect()
A获得指定目录下的所有文件,并在列表框中显示岭
void CMyFtpDlg::Br
文档评论(0)