实验三 实验报告表
实验名称:字符编码与信息交换
学号: 姓名: 班级: 实验时间:
实验报告表3-1 西文字符显示过程编码记录表
实验报告表3-2 汉字显示过程编码记录表
实验报告表3-3 不同字体的字型码
实验五 FTP客户端程序
1.实验目的
文件传送协议FTP是Internet中广泛使用的服务协议之一,FTP协议是客户/服务器之间进行文件传递的协议。
● 理解FTP协议的工作原理
● 掌握FTP客户程序的编程方法
● 理解在FTP传输过程中建立的两个连接
2.实验内容
利用WinSock编程接口编写FTP客户程序,在用户界面中给出必要的FTP服务器信息:FTP服务器的IP地址、用户名、口令等,通过FTP协议实现指定文件的上载和下载操作。
3.实验环境
程序运行环境为以太网,采用TCP/IP协议栈,网络操作系统为Windows,具有Internet连接能力。程序开发环境为vs2012。
4.实验步骤
步骤1 需求分析
FTP客户程序功能为:
(1) FTP客户程序首先显示用户界面,可以指定FTP服务器的地址、用户名和口令等信息
(2) 通过FTP协议接收FTP服务器的当前目录列表,并显示本地和远程目录列表信息
(3) 可以实现本地和远程目录的切换
(4) 可以实现文件的上载和下载操作
步骤2 FTP客户程序开发
用Visual C++编写FTP客户程序,利用WinSock编程接口实现FTP协议通信。FTP客户程序首先显示用户界面,使用户可以指定FTP服务器和用户、口令信息(可以采用匿名方式),点击连接按钮后,向FTP服务器的TCP 21号端口建立TCP连接,在控制连接上发送FTP命令,首先获得本地和远程系统的目录列表并显示,可以进行目录切换等操作,指定上、下载的文件建立数据连接进行文件传送。
步骤3 编译和执行程序
将FTP客户程序编译、连接成执行程序,运行FTP客户程序。填写校园网的FTP服务器IP和用户、口令信息,进行各种FTP操作(文件上载、下载)。
5.具体实现
(1) 数据结构分析
? 定义FileItem结构来保存文件信息
typedef struct FileItem
{
int nItem; // 在列表框中的索引
BOOL bDir; // 判断是否为文件夹
CString strFileName; // 文件名
}FILEITEM;
? 主对话框类完成FTP的大部分功能
其中:
? ID_control成员变量:
CListCtrl m_ctrlRemoteFiles; // IDC_LIST_REMOTE 映射的列表型变量
CListCtrl m_ctrlLocalFiles; // IDC_LIST_LOCAL 映射的列表型变量
CString m_strPassword; // IDC_PASSWORD 映射的CString型变量
CString m_strServer; // IDC_SERVER 映射的CString型变量
CString m_strUserName; // IDC_USER 映射的CString型变量
? 其他添加功能所需成员变量:
CInternetSession* m_pInetSession; // 会话对象
CFtpConnection* m_pFtpConnection; // 连接对象
CFtpFileFind* m_pRemoteFinder; // 远程查找文件对象
CFileFind m_LocalFinder; // 本地查找文件对象
CString m_strLocalParentRoot; // 本地文件目录的上上一层目录
CString m_strRemoteParentRoot; // 远程文件目录的上上一层目录
CArray<FILEITEM,FILEITEM&>m_arrLocalFiles; // 保存本地文件信息
CArray<FILEITEM,FILEITEM&>m_arrRemoteFiles; // 保存远程文件信息
? 成员函数:
/* 初始化程序 */
BOOL CMyFtpDlg::OnInitDialog()
/* 给列表控件CListCtrl增加标题头 */
void CMyFtpDlg::AddHeaders(CListCtrl* pLstCtrl)
/* 给列表框增加一条记录 */
void CMyFtpDlg::AddItem(CListCtrl* pLstCtrl,int nIndex,BOOL bDir,CString strText)
/* 响应“download”按钮 */
void CMyFtpDlg::OnDownload()
/* 响应“Upload”按钮 */
void CMyFtpDlg::OnUpload()
/* 下载单个文件 */
void CMyFtpDlg::DownFile(FILEITEM fileItem)
/* 上传单个文件 */
void CMyFtpDlg::UpFile(FILEITEM fileItem)
/* 连接ftp服务器 */
void CMyFtpDlg::OnConnect()
/* 获得指定目录下的所有文件,并在列表框中显示 */
void CMyFtpDlg::BrowseDir(CString strDir,CListCtrl* pLstCtrl,CFileFind* pFinder,CArray<FILEITEM,FILEITEM&>* pFilesArr)
/* 本地文件目录中向上一层 */
void CMyFtpDlg::OnLocalUp()
/* 远程文件目录中向上一层 */
void CMyFtpDlg::OnRemoteUp()
? 主要函数
1.在OnInitDialog()函数中进行对话框、列表的初始化,并且设定本地文件目录的默认路径为C盘为根目录。
2.在OnConnect()函数中首先进行刷新来捕获是否进行连接,如果有操作,则新建对话:
m_pInetSession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
然后catch(CInternetException *pEx)进行错误捕获,然后定义远程文件变量以获得服务器根目录的所有文件并在列表框中显示
m_pRemoteFinder = new CFtpFileFind(m_pFtpConnection);
BrowseDir("",&m_ctrlRemoteFiles,m_pRemoteFinder,&m_arrRemoteFiles);
3. BrowseDir()函数的功能为获得指定目录下的所有文件,并在列表框中显示,利用
BOOL res = pFinder->FindFile(szDir)查找目录下的文件,利用pFinder->IsDirectory() && !pFinder->IsDots()判断是目录还是文件
(2)FTP客户端工作流程及结果
● 首先在本机配置ftp服务器
不作具体说明,配置后服务器地址为10.12.150.137
● 使用匿名账户进行登录
点击匿名登陆按钮并点击连接时,用户名自动出现“anonymous”,并进行连接。
● 上下层切换功能
本地目录进入123子目录
● 下载与上传功能
可将文件下载至123子目录下面。
也可将123目录下的文件上传至服务器
六. 实验总结
通过实验加深了我对FTP的理解。FTP(File Transfer Protocol)是 Internet 上用来传送文件的协议(文件传输协议)。它是为了我们能够在 Internet 上互相传送文件而制定的的文件传送标准,规定了 Internet 上文件如何传送。也就是说,通过 FTP 协议,我们就可以跟 Internet 上的 FTP 服务器进行文件的上传(Upload)或下载(Download)等动作。
和其他 Internet 应用一样,FTP 也是依赖于客户程序/服务器关系的概念。在 Internet 上有一些网站,它们依照 FTP 协议提供服务,让网友们进行文件的存取,这些网站就是 FTP 服务器。网上的用户要连上 FTP 服务器,就要用到 FPT 的客户端软件,通常 Windows 都有“ftp”命令,这实际就是一个命令行的 FTP 客户程序。本实验通过查阅了大量资料结合MFC做了一个很简单的界面初始完成了FTP客户端的基本功能,但是仍存在很多的不足,有时间的话我将进一步研究及完善。
实验二实验报告表实验名称学号姓名班级实验时间实验报告表21数值型数据在计算机中的二进制实验记录表说明本实验对计算机内存数据的存放拟…
实验七实验报告表实验名称学号姓名班级实验报告表71网络中实现通信互联的主要设备和其功能实验报告表72域名解析的IP路由通讯的过程实…
实验三实验报告表实验名称字符编码与信息交换学号姓名班级实验时间实验报告表31西文字符显示过程编码记录表实验报告表32汉字显示过程编…
实验八实验报告表实验名称云计算与虚拟服务学号姓名班级实验时间实验报告表81并行算法和串行算法实验数据表实验报告表82分布式实验数据…
实验七实验报告表实验名称学号姓名班级实验时间20xx年月12月2日实验报告表71网络中实现通信互联的主要设备和其功能实验报告表72…
实验一实验报告表实验名称图灵机模型与计算机硬件系统虚拟拆装学号姓名班级实验时间实验报告表11图灵机模型中的主要组成部分及作用说明可…
实验八实验报告表实验名称云计算与虚拟服务学号姓名班级实验时间实验报告表81并行算法和串行算法实验数据表实验报告表82分布式实验数据…
五实验报告实验名称图像生成与图像处理学号姓名班级实验时间一填写下载图像的相关数据二查看左侧的图像请填写相应的图像编码三计算机中实际…
实验二实验报告表实验名称学号姓名班级实验时间实验报告表21数值型数据在计算机中的二进制实验记录表说明本实验对计算机内存数据的存放拟…
实验五实验报告表实验名称学号姓名班级实验时间实验报告表51进程同步实验观察结果记录表实验报告表52基于Windows系统的进程实验…
《大学计算机基础》课程实验报告姓名:天桥卧龙专业:XXXX班级:XXXX级1班学号:XXXXXX第二章中文操作系统WindowsX…