北京理工大学计算机网络实践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;//远程文件目隶的上上一层目隶
CArraym_arrLocalFiles;// 保存本地文件信息
CArraym_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获得指定目录下的所有文件,并在列表框中显示岭
voidCMyFtp