当前位置:文档之家› 《网络编程》实验报告案例

《网络编程》实验报告案例

韶关学院
《网络编程》实验报告案例
实验课程名称:WIN高级编程
实验项目名称:文件上传与下载程序的设计
实验类型(打√):(基础□、综合□、设计 )
院系:计算机科学专业班级:计算机软件12本(2)姓名:学号:
指导教师:程细柱
韶关学院教务处编制
一、实验预习报告内容
预习日期2014年4月2日实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理及公式、实验预习疑问等项目。

㈠实验目的和要求
通过查看《网络编程》实验平台(下载地址:/detail/cflynn/6921289)的选项卡的“实验基础”部分知识,明白以下“实验目的”和“实验要求”:
1)掌握FTP工作原理、数据传输方式。

2)了解FTP规范(命令及响应吗)。

3)掌握两种文件传输模式下服务器与客户端的工作流程。

4)掌握FTP编程涉及的相关类及FTP重要功能的实现。

㈡实验内容
1)通过查看《网络编程》实验平台的选项卡的“实验基础”、“实验内容”和“实验实例”的具体信息,掌握“FTP程序”的设计方法。

2)查看“实验源代码”并运行“FTP服务器程序”和“FTP客户程序”设计一个类似的程序。

㈢实验仪器、设备及材料
1、一人一台计算机,先独立完成实验的预习部份,然后两人合作完成“实验过程与数据记录”部
份。

2、计算机硬件的最低配置为:PentiumⅢCPU、硬盘、彩显、局域网。

3、计算机软件的基本要求:《网络编程》实验平台、C#。

㈣实验原理
通过《网络编程》实验平台,我们明白:
1)FTP(File Transfer Protocol,文件传输协):是TCP/IP协议组中的协议之一,是Internet 传递文件最主要的方法。

FTP的主要功能如下:
(1)提供文件的共享,包括程序文件和数据文件;
(2)支持间接使用远程计算机;
(3)使用户不因各类主机文件存储器系统的差异而受影响;
(4)使用TCP提供可靠且有效的传输。

通过FTP传输文件,双方至少需要建立两个TCP连接,一个称为控制连接,用于传输FTP命令;一个称为数据连接,用于传输文件数据。

2)FTP常用的两种数据传输方式:ASCII传输方式和二进制传输方式。

(1)ASCII传输方式:该方式以ASCII编码方式传输数据,适用于传输仅包含英文的命令和参
数,或者在不同的平台间传输英文文本文件的场合。

在不同的平台间进行文件传输时,FTP通常会自动地调整文件的内容,把文件解释成目标计算机存储的文本文件的格式。

(2)二进制传输方式:采用该方式进行数据传输时,可以指定采用哪种编码传输命令或文件数据。

如果传输的文件不是英文文本文件,或者传输的命令参数中带有中文信息,则应该采用二进制传输方式。

3)FTP的两种工作模式:
(1)Port模式(主动模式):该模式表示服务器主动连接客户端,然后传输文件。

在此模式下,FTP客户端先用一个端口N(N>1024)向服务器的21号端口发起控制连接,连接成功后,再发出PORT N+1命令告诉服务器自己监听的端口号为N+1。

服务器接收到该命令后,用一个新的数据端口(一般是20号端口)与客户端的端口N+1建立连接,然后进行文件数据传输,而客户端则通过监听N+1端口接收文件数据。

(2)Passive模式(PASV,被动模式):该模式表示服务器被动接受客户端连接请求,即控制连接请求和数据连接请求都由客户端发起。

在此模式下,FTP客户端先随机开启一个端口N向服务器的21号端口发起控制连接,然后向服务器发送PASV命令,服务器收到此命令后,会用一个新的端口P(P>1024)进行监听,同时将该端口号告诉客户端,客户端收到响应命令后,再通过新的端口N+1连接服务器的端口P,然后进行文件数据传输。

4)利用以下FTP的USER、PASS、ACCT、REIN、QUIT、PASV、PORT、TYPE、MODE、CWD、PWD、MK、CDUP、RMD、LIS、NLST、RNFR、RNTO、DEL、RETR、STOR命令和响应码知识设计一个文件上传与下载功能的FTP服务器。

5)设计FTP客户端程序用到的相关类:
(1)FtpWebRequest类:用于实现文件传输协议(FTP)客户端功能,例如上传文件、下载文件等。

用法是:先用FtpWebRequest的Create方法得到FtpWebRequest的实例。

该方法有两种重载形式:FtpWebRequest.Create(String uriString)或FtpWebRequest.Create(Uri uri);如果FTP服务器不允许匿名访问,客户端必须向服务器提供用户名和密码(利用NetworkCredential类提供给服务器)。

(2)FtpWebResponse类:用于封装文件传输协议(FTP)服务器对请求的响应。

该类提供操作的状态以及从服务器下载的所有数据。

对应关键代码为:
FtpWebRequest request=(FtpWebRequest)FtpWebRequest.Create(ftpUriString);
FtpWebResponse response=(FtpWebResponse)request.GetResponse();
GetResponse方法建立控制连接,还可能创建数据连接。

该方法在接收到响应之前一直处于组塞状态。

若要防止组塞,则可通过调用BeginGetResponse和EndGetResponse方法替代GetResponse 异步执行此操作。

(3)NetworkCredential类:用于为基于密码的身份验证方案提供凭据。

该类可用于多种协议。

在FTP中,用于提供FTP用户名和密码。

例如:NetworkCredential networkCredential=new NetworkCredential(textBoxUserName.Text, textBoxPassword.Text);
二、实验过程与数据记录
实验时间:2014年4月3日(星期四第7-8节)
实验同组人:
如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据。

㈠实验过程如下:
1)用户先选择《网络编程》实验平台左边目录树中的“FTP应用编程”下的“FTP命令与服务器端编程”;再选择右上方的“实验基础”、“实验内容”和“实验实例”查看服务器端实验小工具的使用方法,以及服务器端算法的程序流程图。

2)点击右下角状态栏中的“实例代码”按钮查看“服务器端程序”的关键源代码。

4)选择左边目录树中的“FTP应用编程”下的“FTP相关类与客户端编程”。

5)用同样的方法查看客户端实验小工具的使用方法,以及客户端算法的程序流程图。

6)同样点击右下角状态栏中的“实例代码”按钮查看“客户端程序”的关键源代码。

7)点击右下角状态栏中的“FTP服务器端”按钮启动FTP服务器端。

用户可以设置服务器的IP地址和主目录,按“启动FTP服务”按钮启动服务器,该窗体将显示客户的文件传送信息。

8)用户点击实验平台主窗体右下角状态栏中的“FTP客户端”按钮可启动FTP客户端,再输入服务器IP地址、用户名和密码后,点击“登录”按钮连接FTP服务器;
9)登入成功后可以进行文件的上传与下载测试了。

㈡根据以上程序,设计一个类似的FTP程序,并写出“实验报告”。

指导教师
批阅及签名:签名:年月日
注:1、如个别实验内容多,实验表格页面不够写的,或有识图、画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验记录表”中。

2、实验记录表属教学运行材料,院系(中心)应按有关规定归档保管。

相关主题