资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
东南大学自动化学院实验报告课程名称:信息通信网络概论第 2 次实验实验名称:FTP客户端通信程序设计院(系):自动化专业:自动化姓名:学号:实验室:金智楼5楼实验组别:同组人员:实验时间:2016年12月13日评定成绩:审阅教师:一实验目的和要求3二实验原理3三.实验方案与实验步骤3四实验设备与器材配置4五实验记录4六实验总计8七思考题或讨论题9附录:部分代码实验目的和要求1. 了解Windows下的TCP/IP通信方式与网络操作;2. 熟悉FTP的编程的过程;3. 学会用可视化编程语言编写调试简单的通信程序。二 实验原理在使用MFC编程时,要连接到FTP服务器是一件非常简单的事情,只需要两个简单的步 骤,首先必须建立一个CinternetSession对象,用类CinternetSession创建并初始化一个或几个 同时存在的Internet会话(Session),并描述与代理服务器的连接(如果有必要的话),如果 在程序运行期间需要保持与I nternet的廉洁,可以创建一个CinternetSession对象作为类 CwinApp的成员。MFC中的类CftpConnection管理我们与Internet服务器的连接,并直接操作 服务器上的目录和文件,FTP时MFC的WinInet支持的三个Internet功能之一,我们需要先创 建一个CinternetSession实例和一个CftpConnection对象就可以实现和一个FTP服务器通信,我 们不需要直接创 建CftpConnectio n对象,而是通过调用 CinternetSession:GetFtpConnection来 完成这项工作。他创建CFtpConnection对象并返回一个指向该对象的指针。三 实验方案与实验步骤(请绘制流程图)1、实验方案图 3.1 流程图2、实验步骤1) 创建一个 internet 会话;2) 建立与 FTP 服务器的连接;3) 如果连接成功,获得当前登陆的缺省目录下所有的文件和目录名称4) 下载文件或上传文件;5) 关闭连接。四 实验设备与器材配置电脑、VC6.0五 实验记录1、界面(1)输入:域名、用户名、密码;(2)输出显示:文件目录列表、当前目录;(3)按钮:连接、返回、上传、下载、删除、关闭。图5.1 界面设计2、功能描述1)连接到 FTP 主机,下载 FTP 文件服务器文件列表图 5.2 连接到 FTP 主机,下载 FTP 文件服务器文件列表2)切换访问目录;S3 Ftp域名:|12T.0.0. 1用户名:dTLGnjTi Q1J.E密码:文件目录列克:WWW 一三二四-ppt -ppt-ppt断开连接当前目录:根目录计算机网络图 5.3 切换访问目录(3)向FTP服务器发送文件;图 5.4 向 FTP 服务器发送文件(4)从FTP服务器下载文件。图 5.5 从 FTP 服务器下载文件3、改进(1)从子目录返回根目录(按钮“返回”)运用函数SetCurrentDirectory()设定当前文件路径为,即默认为根目录。(2)显示当前目录(显示框“当前目录”) 在切换目录后,显示当前文件所在目录。即在用户双击文件夹时将双击的文件夹名称添加为上一级目录,利用 strSourceName 实现。(3)删除当前目录下的文件(按钮“删除”) 获得列表中的数据,再获得用户在列表框中的选择。如果选择的是文件夹,则警告“不能删除文件夹”如果选择的是文件,则运用Remove()函数将选中的文件删除。图 5.6 改进功能六 实验总结1、实验结果分析(1)基础功能都能够较好的实现,在下载、上传文件的基础上增加删除的操作,能够将FTP 站点中的文件删除;2)返回功能中,只能返回到根目录,不能实现返回上一级目录,尝试利用函数GetCurrentDirectory ()实现,没有能够做到,希望在后期的学习过程中能够解决这个问题。2、总结思考通过整个实验的学习,我对FTP的基本工作原理和工作流程有了非常深入的了解,并 且对处理文件的一些函数如 GetFileName() 、 IsDirectory() 、 GetFile() 、 PutFile() 、 SetCurrentDirectory()、FindNextFile()、FindFile()、CftpFileFind()和与 FTP 建立会话和连接 的函数 CinternetSession()、GetFtpConnection()能够理解并熟练掌握。在对代码改进的过程中,又学习到很多其他的函数,能够利用已有的代码结构进行改 进完善,实现功能,对于一些常见的错误也能够正确的改正,操作也更加熟练。相信在以 后的学习过程中一定能够熟练运用这次实验中学到的东西。由于在实验室未能及时做完,所以用自己电脑尝试搭建FTP站点,学习到其整个搭建 过程和一些权限设置过程,并且成功利用自己搭建的FTP调试了程序。七 思考题或讨论题1. 简述 FTP 客户端有几个进程工作,分别完成哪些工作 ?(1) 主进程,负责接受新的请求。打开熟知端口(端口号为 21),使客户进程能够连 接上;等待客户进程发出连接请求;启动从属进程来处理客户进程发来的请求。 从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要 还可能创建其他一些子进程。回到等待状态,继续接受其他客户进程发来的请求。 主进程和从属进程的处理是并发进行的。(2) 若干个从属进程,负责处理单个请求。2. FTP 服务与 NFS 服务 有什么区 别。(1) NFS (网络文件系统)是TCP/IP协议集所提供的一种子协议,该协议可以实现 LINUX/UNIX主机之间的文件共享。本质上是文件系统,主要在Unix系列操作系 统上使用,基于TCP/IP协议层,可以将远程的计算机磁盘挂载到本地,像本地磁 盘一样操作。(2) FTP(文件传输协议)是TCP/IP协议栈所提供的一种子协议,该子协议具体可以实现 在以下功能:从客户向服务器发送一个文件;从服务器向客户发送一个文件;从 服务器向客户发送文件或目录列表。附录:(部分代码)1、 返回 功能void CFtpDlg:OnReturn() m_strPath = 根目录;UpdateData(FALSE);if(pConnection-SetCurrentDirectory()设置当前文件路径为根目录 while(m_ListFile.GetCount()!=0) m_ListFile.DeleteString(0);Find();2、目录 显示 功能代码如下:void CFtpDlg:OnDblclkListFile()UpdateData(TRUE);int nSel = m_ListFile.GetCurSel();CString strSourceName;/获得用户在列表框中的选择m_ListFile.GetText(nSel,strSourceName); if(strSourceName.GetAt(0)=)/选择的是目录 strSourceName.Delete(0,1);strSourceName.Delete(strSourceName.GetLength()-1,1);m_strPath = m_strPath+strSourceName;显示当前目录 UpdateData(FALSE);if(pConnection-SetCurrentDirectory(strSourceName)while(m_ListFile.GetCount()!=0) m_ListFile.DeleteString(0);Find();3、删除 功能代码如下:void CFtpDlg:OnDelete()/ TODO: Add your control notification handler code here /获得当前输入UpdateData(TRUE);int nSel = m_ListFile.GetCurSel(); 返回列表中被选择的项 CString strSourceName;/获得用户在列表框中的选择m_ListFile.GetText(nSel, strSourceName);if (strSourceName.GetAt(0) != )/选择的是文件CFileDialog dlg(FALSE, , strSourceName);/获得文件源地址 if (pConnection-Remove(strSourceName) AfxMessageBox(删除成功!,MB_OK | MB_ICONINFORMATION); while(m_ListFile.GetCount()!=0)m_ListFile.DeleteString(0);Find();elseAfxMessageBoxC 删除失败! ,MB_OK | MB_ICONSTOP);else /选择的是目录AfxMessageBox(不能删除文件夹!,MB_OK | MB_ICONSTOP); /激活查询和上传按钮 m_BtnUpLoad.EnableWindow(TRUE);/m_BtnQuery.EnableWindow(TRUE); /激活用来输入的文本和编辑框控件m_EditFtp.EnableWindow(TRUE); m_EditName.EnableWindow(TRUE); m_EditPwd.EnableWindow(TRUE); m_StaFtp.EnableWindow(TRUE); m_StaName.EnableWindow(TRUE); m_StaPwd.EnableWindow(TRUE);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号