东南大学计算机网络第二次实验报告.docx
- 文档编号:12622868
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:12
- 大小:243.48KB
东南大学计算机网络第二次实验报告.docx
《东南大学计算机网络第二次实验报告.docx》由会员分享,可在线阅读,更多相关《东南大学计算机网络第二次实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
东南大学计算机网络第二次实验报告
东南大学自动化学院
实验报告
课程名称:
信息通信网络概论
第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),并描述与代理服务器的连接(如果有必要的话),如果在程序运行期间需要保持与Internet的廉洁,可以创建一个CinternetSession对象作为类CwinApp的成员。
MFC中的类CftpConnection管理我们与Internet服务器的连接,并直接操作服务器上的目录和文件,FTP时MFC的WinInet支持的三个Internet功能之一,我们需要先创建一个CinternetSession实例和一个CftpConnection对象就可以实现和一个FTP服务器通信,我们不需要直接创建CftpConnection对象,而是通过调用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)切换访问目录;
图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、返回功能
voidCFtpDlg:
:
OnReturn()
{
m_strPath="根目录";
UpdateData(FALSE);
if(pConnection->SetCurrentDirectory("\\"))//设置当前文件路径为根目录
{
while(m_ListFile.GetCount()!
=0)
m_ListFile.DeleteString(0);
Find();
}
}
2、目录显示功能
代码如下:
voidCFtpDlg:
:
OnDblclkListFile()
{
UpdateData(TRUE);
intnSel=m_ListFile.GetCurSel();
CStringstrSourceName;
//获得用户在列表框中的选择
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、删除功能
代码如下:
voidCFtpDlg:
:
OnDelete()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
//获得当前输入
UpdateData(TRUE);
intnSel=m_ListFile.GetCurSel();//返回列表中被选择的项
CStringstrSourceName;
//获得用户在列表框中的选择
m_ListFile.GetText(nSel,strSourceName);
if(strSourceName.GetAt(0)!
='[')//选择的是文件
{
CFileDialogdlg(FALSE,"",strSourceName);//获得文件源地址
if(pConnection->Remove(strSourceName))
{
AfxMessageBox("删除成功!
",MB_OK|MB_ICONINFORMATION);
while(m_ListFile.GetCount()!
=0)
m_ListFile.DeleteString(0);
Find();
}
else
AfxMessageBox("删除失败!
",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);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 计算机网络 第二次 实验 报告