东南大学计算机网络第二次实验报告(共12页).doc

上传人:飞****2 文档编号:14332055 上传时间:2022-05-04 格式:DOC 页数:12 大小:404.50KB
返回 下载 相关 举报
东南大学计算机网络第二次实验报告(共12页).doc_第1页
第1页 / 共12页
东南大学计算机网络第二次实验报告(共12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《东南大学计算机网络第二次实验报告(共12页).doc》由会员分享,可在线阅读,更多相关《东南大学计算机网络第二次实验报告(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上东南大学自动化学院实 验 报 告课程名称: 信息通信网络概论 第2次实验实验名称: FTP客户端通信程序设计 院 (系): 自动化 专 业: 自动化 姓 名: 学 号: 实 验 室: 金智楼5楼 实验组别: 同组人员: 实验时间: 2016 年 12 月 13 日评定成绩: 审阅教师: 目 录一实验目的和要求3二实验原理3三. 实验方案与实验步骤3四实验设备与器材配置4五实验记录4六实验总计8七思考题或讨论题9附录:部分代码一 实验目的和要求1. 了解Windows下的TCP/IP通信方式与网络操作;2. 熟悉FTP的编程的过程;3. 学会用可视化编程语言编写调试简单

2、的通信程序。二 实验原理在使用MFC编程时,要连接到FTP服务器是一件非常简单的事情,只需要两个简单的步骤,首先必须建立一个CinternetSession对象,用类CinternetSession创建并初始化一个或几个同时存在的Internet会话(Session),并描述与代理服务器的连接(如果有必要的话),如果在程序运行期间需要保持与Internet的廉洁,可以创建一个CinternetSession对象作为类CwinApp的成员。 MFC中的类CftpConnection管理我们与Internet服务器的连接,并直接操作服务器上的目录和文件,FTP时MFC的WinInet支持的三个In

3、ternet功能之一,我们需要先创建一个CinternetSession实例和一个CftpConnection对象就可以实现和一个FTP服务器通信,我们不需要直接创建CftpConnection对象,而是通过调用CinternetSession:GetFtpConnection来完成这项工作。他创建CFtpConnection对象并返回一个指向该对象的指针。三 实验方案与实验步骤(请绘制流程图)1、 实验方案图3.1 流程图2、 实验步骤1) 创建一个internet会话;2) 建立与FTP服务器的连接;3) 如果连接成功,获得当前登陆的缺省目录下所有的文件和目录名称;4) 下载文件或上传文件

4、;5) 关闭连接。四 实验设备与器材配置电脑、VC6.0五 实验记录1、界面(1) 输入:域名、用户名、密码;(2) 输出显示:文件目录列表、当前目录;(3) 按钮:连接、返回、上传、下载、删除、关闭。图5.1 界面设计2、功能描述(1)连接到FTP主机,下载FTP文件服务器文件列表图5.2 连接到FTP主机,下载FTP文件服务器文件列表(2)切换访问目录;图5.3切换访问目录(3)向FTP服务器发送文件;图5.4 向FTP服务器发送文件(4)从FTP服务器下载文件。图5.5 从FTP服务器下载文件3、改进(1)从子目录返回根目录(按钮“返回”)运用函数SetCurrentDirectory(

5、)设定当前文件路径为,即默认为根目录。(2)显示当前目录(显示框“当前目录”)在切换目录后,显示当前文件所在目录。即在用户双击文件夹时将双击的文件夹名称添加为上一级目录,利用strSourceName实现。(3)删除当前目录下的文件(按钮“删除”)获得列表中的数据,再获得用户在列表框中的选择。如果选择的是文件夹,则警告“不能删除文件夹”;如果选择的是文件,则运用Remove()函数将选中的文件删除。图5.6 改进功能六 实验总结1、实验结果分析(1) 基础功能都能够较好的实现,在下载、上传文件的基础上增加删除的操作,能够将FTP站点中的文件删除;(2) 返回功能中,只能返回到根目录,不能实现返

6、回上一级目录,尝试利用函数GetCurrentDirectory()实现,没有能够做到,希望在后期的学习过程中能够解决这个问题。2、总结思考通过整个实验的学习,我对FTP的基本工作原理和工作流程有了非常深入的了解,并且对处理文件的一些函数如GetFileName()、IsDirectory()、GetFile()、PutFile()、SetCurrentDirectory()、FindNextFile()、FindFile()、CftpFileFind()和与FTP建立会话和连接的函数CinternetSession()、GetFtpConnection()能够理解并熟练掌握。在对代码改进的过

7、程中,又学习到很多其他的函数,能够利用已有的代码结构进行改进完善,实现功能,对于一些常见的错误也能够正确的改正,操作也更加熟练。相信在以后的学习过程中一定能够熟练运用这次实验中学到的东西。由于在实验室未能及时做完,所以用自己电脑尝试搭建FTP站点,学习到其整个搭建过程和一些权限设置过程,并且成功利用自己搭建的FTP调试了程序。七 思考题或讨论题1. 简述FTP客户端有几个进程工作,分别完成哪些工作?(1) 主进程,负责接受新的请求。打开熟知端口(端口号为 21),使客户进程能够连接上;等待客户进程发出连接请求;启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从

8、属进程在运行期间根据需要还可能创建其他一些子进程。回到等待状态,继续接受其他客户进程发来的请求。主进程和从属进程的处理是并发进行的。(2) 若干个从属进程,负责处理单个请求。2. FTP服务与NFS服务有什么区别。(1) NFS(网络文件系统)是TCP/IP协议集所提供的一种子协议,该协议可以实现LINUX/UNIX主机之间的文件共享。本质上是文件系统,主要在Unix系列上使用,基于层,可以将远程的计算机磁盘挂载到本地,像一样操作。(2) FTP(文件传输协议)是所提供的一种子协议,该子协议具体可以实现在以下功能:从客户向服务器发送一个文件;从服务器向客户发送一个文件;从服务器向客户发送文件或

9、目录列表。附录:(部分代码)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 st

10、rSourceName;/获得用户在列表框中的选择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_ListFi

11、le.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 (strSourceN

12、ame.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();elseAfxMessageBox(删除失败! , 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);专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁