蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOC文档下载
 

计算机网络课程设计简单ftp服务器实现.doc

  • 资源ID:580840       资源大小:239.50KB        全文页数:10页
  • 资源格式: DOC        下载权限:游客/注册会员    下载费用:8积分 【人民币8元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要8积分 【人民币8元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

计算机网络课程设计简单ftp服务器实现.doc

计算机网络课程设计报告学院专业班级设计题目简单FTP服务器实现组长组员指导教师成绩时间2014至2015学年度第1学期9月25日至10月30日简单FTP服务器实现1关键技术11FTP协议FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。图1FTP服务示意图在开始阶段,标准FTP命令由用户PI产生并通过控制连接传送到服务器进程。服务器PI向用户PI返回标准应答。FTP命令指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始FTP命令的机器上,但用户或用户FTP进程必须确定它在指定的数据端口上侦听。这个数据连接是全双工的。FTP协议中对应答码的意义有明确的规定,如下表所示表1FTP协议应答码应答码意义应答码意义110重新启动标记应答。在这种情况下文本是确定的,它必须是MARKYYYYMMMM,其中YYYY是用户进程数据流标记,MMMM是服务器标记。120服务在NNN分钟内准备好125数据连接已打开,准备传送150文件状态良好,打开数据连接200命令成功202命令未实现211系统状态或系统帮助响应212目录状态213文件状态214帮助信息,信息仅对人类用户有用215名字系统类型220对新用户服务准备好221服务关闭控制连接,可以退出登录225数据连接打开,无传输正在进行226关闭数据连接,请求的文件操作227进入被动模式成功230用户登录250请求的文件操作完成257创建“PATHNAME“331用户名正确,需要口令332登录时需要帐户信息350请求的文件操作需要进一步命令421不能提供服务,关闭控制连接425不能打开数据连接426关闭连接,中止传输450请求的文件操作未执行451中止请求的操作有本地错误452未执行请求的操作系统存储空间不足500格式错误,命令不可识别501参数语法错误502命令未实现503命令顺序错误504此参数下的命令功能未实现530未登录532存储文件需要帐户信息550未执行请求的操作551请求操作中止页类型未知552请求的文件操作中止,存储分配溢出553未执行请求的操作文件名不合法12TCP协议的编程SOCKET(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。可以将SOCKET看作不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界面。SOCKET存在于通信域中,通信域是为了处理一般的线程通过SOCKET通信而引进的一种抽象概念。SOCKET通常和同一个域中的SOCKET交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。各种进程使用这个相同的域互相之间用INTERNET协议簇来进行通信。2功能设计21功能示意图服务器端客户端客户端验证登陆链接下载登陆上传下载删除主动被动图2实现功能示意图以FTP的工作原理和权限归属为基础,用C语言编写程序,,用简单界面展示,用SOCKET编程和二进制输入输出流来实现了FTP文件上传,下载,删除,读取文件列表这几项功能。采用端口为21和IP地址为127001连接。3代码实现31启动服务器(服务器端)//启动服务器PRIVATEVOIDBTNFTPSERVERSTARTSTOP_CLICKOBJECTSENDER,EVENTARGSE{IFMYTCPLISTENERNULL{LISTENTHREADNEWTHREADLISTENCLIENTCONNECTLISTENTHREADISBACKGROUNDTRUELISTENTHREADSTARTLSTBOXSTATUSENABLEDTRUELSTBOXSTATUSITEMSCLEARLSTBOXSTATUSITEMSADD“已经启动FTP服务“BTNFTPSERVERSTARTSTOPTEXT“停止“}ELSE{MYTCPLISTENERSTOPMYTCPLISTENERNULLLISTENTHREADABORTLSTBOXSTATUSITEMSADD“FTP服务已停止“LSTBOXSTATUSTOPINDEXLSTBOXSTATUSITEMSCOUNT1BTNFTPSERVERSTARTSTOPTEXT“启动“}}//使用数据连接发送文件流(客户端发送下载文件命令)PRIVATEVOIDSENDFILEBYUSERSESSIONUSERUSER,FILESTREAMFS{ADDINFO“向用户发送文件流“TRY{IFUSERISBINARY{BYTEBYTESNEWBYTE1024BINARYREADERBINARYREADERNEWBINARYREADERFSINTCOUNTBINARYREADERREADBYTES,0,BYTESLENGTHWHILECOUNT0{USERDATASESSIONBINARYWRITERWRITEBYTES,0,COUNTUSERDATASESSIONBINARYWRITERCOUNTBINARYREADERREADBYTES,0,BYTESLENGTH}}ELSE{STREAMREADERSTREAMREADERNEWSTREAMREADERFSWHILESTREAMREADERPEEK1{USERDATASESSIONSTREAMWRITERWRITELINESTREAMREADERREADLINE}}ADDINFO“发送完毕“}FINALLY{USERDATASESSIONCLOSEFSCLOSE}}32文件传输操作(客户端)由于代码过多且相似,以显示文件目录和上传文件为例。//处理并显示文件目录列表STRINGFTPDIRSSPLITENVIRONMENTNEWLINETOCHARARRAY,STRINGSPLITOPTIONSREMOVEEMPTYENTRIESINTLENGTH0FORINTI0I“{STRINGNAMEFIELDNAMESPLITINTNAMEFIELDLENGTHNAMEFIELDLENGTHSTRINGDIRNAMEDIRNAMENAMEFIELDNAMEFIELDLENGTH1//对齐DIRNAMEDIRNAMEPADRIGHT34,NAMEDIRNAME//显示目录LSTBXFTPRESOURCESITEMSADD“目录“NAME}}FORINTI0I“{STRINGNAMEFIELDNAMESPLITINTNAMEFIELDLENGTHNAMEFIELDLENGTHSTRINGFILENAMEFILENAMENAMEFIELDNAMEFIELDLENGTH1}}}//上传文件到服务器事件PRIVATEVOIDBTNUPLOAD_CLICKOBJECTSENDER,EVENTARGSE{//选择要上传的文件OPENFILEDIALOGOPENFILEDIALOGNEWOPENFILEDIALOGOPENFILEDIALOGFILENAMEOPENFILEDIALOGFILENAMESTOSTRINGOPENFILEDIALOGFILTER“所有文件|“IFILEDIALOGSHOWDIALOGDIA

注意事项

本文(计算机网络课程设计简单ftp服务器实现.doc)为本站会员(战狼3)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开