《网络程序课程设计ftp客户端.》由会员分享,可在线阅读,更多相关《网络程序课程设计ftp客户端.(25页珍藏版)》请在金锄头文库上搜索。
1、河南理工大学万方科技学院课程设计报告2015 2016学年第二学期课程名称 计算机网络 设计题目 使用.NET技术编写FTP客户端 姓 名 学 号 1516353004 专业班级 计科15升-1班 指导教师 李静 2016 年 06 月 23 日网络程序开发课程设计 使用.NET技术编写FTP客户端目 录1 课题任务及要求11.1 课题任务及要求12 组员任务分工22.1 组员任务及分工24 课题相关算法及实现步骤44.1用户登录服务器,列表更新44.2双击事件功能的实现64.3登录失败获得服务器的响应信息74.4删除指定文件及文件夹84.5浏览上传文件94.6上传文件94.7下载文件114.
2、8实现步骤135 实现功能及操作简介145.1连接服务器145.2服务器响应信息145.3浏览145.4上传155.5下载155.6删除165.7进入目录和返回上级目录165.8退出166 实验结果及分析176.1用户登录结果176.2服务器响应信息结果176.3浏览结果186.4上传结果186.5下载结果196.6删除结果206.7进入目录及返回上级目录结果216.8退出217 心得体会228 参考文献231 课题任务及要求1.1 课题任务及要求课题:使用.NET技术编写FTP客户端设计要求:FTP客户端:(1)根据服务器的IP地址,用户名,密码登陆FTP服务器。(2)客户端上显示服务器响应
3、信息。(3)登陆成功后,客户端上显示服务器FTP目录及文件(目录和文件显示加以区别)。(4)用户双击目录后可以进入该目录中,也可以双击“返回上级目录”,返回到上层目录。(5)用户将本地文件上传至FTP服务器,以及采用多线程技术从服务器上下载文件。(6)实现删除服务器上指定的文件和文件夹。课题组人数:限1人。2 组员任务分工2.1 组员任务及分工刘凡 11303090122 任务分工:完成程序源码,编写实验文档和PPT3 相关知识简介3.1 FTPFTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。
4、同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:下载(Download)和上传(Upload)。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。3.2 Serv-U软件Serv-U 是当前众多的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC 设置成一个FTP 服务器,这样,用户或其他使用者就能够使用FTP 协议
5、,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动,创建,和删除等。这里提到的FTP 协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了像FTP 这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。3.4 相关FTP操作命令FtpWebRequest类用于实现文件传输协议(Ftp)客户端的操作,用该类的Create方法初始化新的WebRequest对象,然后用该类的Method属性指定当前请求的命令是什么,这个值定义在结构体WebRequestMethods.ftp中,本次程序用到的命令有Li
6、stDirectoryDetails获取文件详细列表、DeleteFile删除文件、RemoveDirectory删除目录、DownloadFile下载文件、UploadFile上传文件等。4 课题相关算法及实现步骤4.1用户登录服务器,列表更新 private void btnDenglu_Click(object sender, EventArgs e) FileList = ; connect(); public void connect() listBoxInfo.Items.Clear(); try ftpServerIp = txtIp.Text; ftpUserID = txtU
7、sername.Text; ftpPassword = txtPwd.Text; req = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftp:/ + ftpServerIp + / +FileList); req.Credentials = new NetworkCredential(ftpUserID, ftpPassword); req.KeepAlive = false; req.Method = WebRequestMethods.Ftp.ListDirectoryDetails; req.UseBinary = true; FtpWeb
8、Response response = GetFtpResponse(req); listBoxInfo.Items.Add(服务器返回: + response.StatusDescription); StreamReader reader = new StreamReader(response.GetResponseStream();/ string s = reader.ReadToEnd(); string ftpDir = s.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
9、 listBoxInfo.Items.AddRange(ftpDir); listBoxInfo.Items.Add(服务器返回: + response.StatusDescription); ftpFileBox.Items.Add(返回上级目录); for (int i = 0; i ftpDir.Length; i+) string fileinfo = ftpDiri.Split( ); string type = null; string filename = fileinfofileinfo.Length - 1; if (filename = . | filename = .)
10、continue; else if (fileinfo0.IndexOf(d) != -1) type = ; else type = ; ftpFileBox.Items.Add(type + + filename); reader.Close(); response.Close(); btnDenglu.Enabled = false; catch (Exception ex) MessageBox.Show(登陆失败!); MessageBox.Show(ex.ToString(); 4.2双击事件功能的实现 private void ftpFileBox_MouseDoubleClick(object sender, MouseEventArgs e) try String item = ftpFileBox.SelectedItem.ToString().Split( ); string type = item0; if (type.Equals() string file = item1; FileList += (file + /);/进入目录 ftp:/ ServerIp/ 目录名/ ftpFileBox.Items.Clear(); connect(); else