网络程序开发课程设计报告使用.NET技术编写FTP客户端学院(系):计算机科学与工程学院专业:网络工程指导老师:傅由甲学生姓名:刘凡学号:11303090122时间:从2016年1月11日到2016年1月15日网络程序开发课程设计使用.NET技术编写FTP客户端目录1课题任务及要求........................................................................................................11.1课题任务及要求..............................................12组员任务分工............................................................................................................22.1组员任务及分工..............................................24课题相关算法及实现步骤........................................................................................44.1用户登录服务器,列表更新.....................................44.2双击事件功能的实现...........................................64.3登录失败获得服务器的响应信息.................................74.4删除指定文件及文件夹.........................................84.5浏览上传文件.................................................94.6上传文件.....................................................94.7下载文件....................................................114.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参考文献..................................................................................................................23网络程序开发课程设计使用.NET技术编写FTP客户端11课题任务及要求1.1课题任务及要求课题:使用.NET技术编写FTP客户端设计要求:FTP客户端:(1)根据服务器的IP地址,用户名,密码登陆FTP服务器。(2)客户端上显示服务器响应信息。(3)登陆成功后,客户端上显示服务器FTP目录及文件(目录和文件显示加以区别)。(4)用户双击目录后可以进入该目录中,也可以双击“返回上级目录”,返回到上层目录。(5)用户将本地文件上传至FTP服务器,以及采用多线程技术从服务器上下载文件。(6)实现删除服务器上指定的文件和文件夹。课题组人数:限1人。网络程序开发课程设计使用.NET技术编写FTP客户端22组员任务分工2.1组员任务及分工刘凡11303090122任务分工:完成程序源码,编写实验文档和PPT网络程序开发课程设计使用.NET技术编写FTP客户端33相关知识简介3.1FTPFTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:下载(Download)和上传(Upload)。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。3.2Serv-U软件Serv-U是当前众多的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC设置成一个FTP服务器,这样,用户或其他使用者就能够使用FTP协议,通过在同一网络上的任何一台PC与FTP服务器连接,进行文件或目录的复制,移动,创建,和删除等。这里提到的FTP协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了像FTP这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。3.4相关FTP操作命令FtpWebRequest类用于实现文件传输协议(Ftp)客户端的操作,用该类的Create方法初始化新的WebRequest对象,然后用该类的Method属性指定当前请求的命令是什么,这个值定义在结构体WebRequestMethods.ftp中,本次程序用到的命令有ListDirectoryDetails获取文件详细列表、DeleteFile删除文件、RemoveDirectory删除目录、DownloadFile下载文件、UploadFile上传文件等。网络程序开发课程设计使用.NET技术编写FTP客户端44课题相关算法及实现步骤4.1用户登录服务器,列表更新privatevoidbtnDenglu_Click(objectsender,EventArgse){FileList=;connect();}publicvoidconnect(){listBoxInfo.Items.Clear();try{ftpServerIp=txtIp.Text;ftpUserID=txtUsername.Text;ftpPassword=txtPwd.Text;req=(FtpWebRequest)FtpWebRequest.Create(newUri(ftp://+ftpServerIp+/+FileList));req.Credentials=newNetworkCredential(ftpUserID,ftpPassword);req.KeepAlive=false;req.Method=WebRequestMethods.Ftp.ListDirectoryDetails;req.UseBinary=true;FtpWebResponseresponse=GetFtpResponse(req);listBoxInfo.Items.Add(服务器返回:+response.StatusDescription);StreamReaderreader=newStreamReader(response.GetResponseStream());//strings=reader.ReadToEnd();网络程序开发课程设计使用.NET技术编写FTP客户端5string[]ftpDir=s.Split(Environment.NewLine.ToCharArray(),StringSplitOptions.RemoveEmptyEntries);listBoxInfo.Items.AddRange(ftpDir);listBoxInfo.Items.Add(服务器返回:+response.StatusDescription);ftpFileBox.Items.Add(返回上级目录);for(inti=0;iftpDir.Length;i++){string[]fileinfo=ftpDir[i].Split('');stringtype=null;stringfilename=fileinfo[fileinfo.Length-1];if(filename==.||filename==..)continue;else{if(fileinfo[0].IndexOf('d')!=-1)type=目录;elsetype=文件;ftpFileBox.Items.Add(type++filename);}}reader.Close();response.Close();btnDenglu.Enabled=false;网络程序开发课程设计使用.NET技术编写FTP客户端6}catch(Exceptionex){MessageBox.Show(登陆失败!);MessageBox.Show(ex.ToString());}}4.2双击事件功能的实现privatevoidftpFileBox_MouseDoubleCli