计算机网络课程设1ftp.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络课程设1ftp

成绩 中国农业大学 课程论文 (2008-2009学年 春季 学期) 课程名称:计算机网络课程设计 任课教师: 杨 璐 班  级: 学  号: 姓  名: 计算机网络课程设计 课程设计名称:FTP 客户端软件 课程设计目的: 通过FTP客户端软件加深对网络传输的理解。 了解网络传输的实现方法 学习FTP协议 通过FTP程序的编写,了解协议在网络中不可替代的作用 课程设计要求: 客户端程序具有文件列表、下载文件、上传文件等常用功能。 因为FTP协议比较复杂,为了简单起见,客户端只实现FTP客户端协议的一个子集。 具有以下几个功能: ? 连接到指定的FTP服务器; ? 断开和主机的连接; ? 进入子目录; ? 退出子目录; ? 列出服务器当前目录下的所有文件 ? 从服务器下载指定的文件到本地(可以同时指定多个文件连续下载) ? 从本地上传指定的文件到服务器 用户界面应该能够为程序输入下面的信息: ? 服务器主机名 ? 用户名、口令 ? 数据的传送类型 ? 要进入的服务器目录 ? 要下载的远程文件名 ? 要上载的本地文件名和远程文件名 同时,界面也为用户输出以下的信息: ? FTP服务器上的文件和目录列表 ? 从服务器返回的应答 课程设计软件环境: 操作系统:WINDOWS XP SP3 使用语言:C++ 使用平台:VS2005 使用库:lib-ws2_32,WinSock.h,fstream,iostream,errno.h,time.h,string,windows.h 课程设计与调试的硬件环境: CPU:P core2 7200 内存:2G 硬盘空间:250G 网卡:10/100M/1000M自适应网卡 课程设计原理: 1.简介 FTP 文件传输协议,提供的是文件传输服务,C/S的方式进行网络访问,端口号一般为21。 支持密名访问的FTP都包含一个Anonymous用户,使用Anonymous登陆后只需输入e-mail即可登录。 用户登录后即可进行文件操作,本次课程设计我采用的是命令行方式的操作界面。对文件的操作需要使用指定命令(如列目录使用LIST)。 根据命令性质的不同对两类命令进行分析 简单的无数据传输方式: 以CWD为例: client-setCommand(CWD ,Direct); 命令格式规范化,例如要进入根目录下的tools目录就可使命令规范化为”CWDSPACE/TOOLS\r\n”(其中SPACE代表一个空格)。 请注意这里的字符串一个字符都不能差,更详细的说明参见RFC959文档,内有详细说明。 client-sendCommand(); sendCommand()即为发送规范化的命令。 client-receiveCommand(); 接收应答信息并分离应答码。 复杂的有数据传输方式: 带有数据传输的文件需要建立数据套接字来传输,建立数据套接字的方式有两种,主动模式,被动模式。 简单的介绍下这两种模式: 主动模式:主动模式是客户端发送数据连接请求,并告知服务器端已开放的正在监听的端口,由服务器发送连接请求,建立连接。 被动模式:被动模式是发送被动连接模式命令,服务器由应答码返回可用的ip与端口信息,通过对应答码的分析找到端口号,用客户端连接正在监听的服务器端口。 由于主动模式的局限性,即在有NAT转换时无法将信息送至正确的位置,因为经过NAT技术转换的端口号代表的是一台计算机的内网编号,而不是计算机网络端口的端口号,所以无法正确送达。也因此本程序采用被动模式。 当数据链路建立完成后,数据链路需要进行初始化,数据链路有两种常用的模式,ASCII方式和二进制方式,下面介绍下这两种传输方式: ASCII方式:ASCII方式传输数据时,数据以一个字符一个字符为单位传输,这种方式一般使用在文本文件等一些使用ASCII码来储存信息的文件传输中ASCII方式同样用于文件目录列表的传输。使用ASCII方式传输二进制文件,例如可执行文件,图片文件,动画文件,等等,会使文件损坏。 二进制方式:二进制文件传输数据时,数据以比特为单位传输,到达客户端后,由操作系统将其合并转换。使用2进制可以传输绝大多数的文件,但是二进制方式也有其不可避免的局限性,二进制传输文件要求服务器和客户端使用相同类型的操作系统,如果不同类型下载的文件无法使用,但可以使用二进制方式传输到另一台拥有相同操作系统的机器上,文件可以使用。所以二进制方式传输同样不适用于网络传输。 确定了传输类型后,就可以创建套接字,格式化命令,发送命令,并接受信息和应答码与两不同的SOCKET上。 char* filename = new char[512]; m

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档