




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 课程名称 计算机网络 题目名称 FTP程序设计 学生学院 自动化 专业班级 物联网13(1) 学 号 学生姓名 指导教师 2016 年 1 月 4 日摘要FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:下载(Download)和上传(Upload)。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。是INTERNET使用最广泛的协议之一。使用Socket进行Client/Server程序设计的一般连接过程是这样的:Server端监听某个端口是否有连接请求,Client端向Server端发出连接请求,Server端向Client端发回接受信息,一个连接就建立起来了。Server端和Client端都可以通过send,put,dir等方法与对方通信. 关键词:Socket,wincock文件传输协议的简单设计与实现目录一、实验目的.4二、实验内容和要求.4 2.1 实验内容.4 2.2具体要求.4三、实验主要仪器设备和材料.4四、实验方法、步骤及结构测试.5 4.1、TCP/IP原理.5 4.1.1、网络层协议.5 4.1.2、应用层协议.54.2、Winsock编程原理.54.2.1原始套接字.54.2.3设置套接字选项.54.2.4创建并填充相应协议头.5 4.3 FTP工作原理.6 4.4 个人负责部分.7 4.5程序流程图.94.6调试结果.11五、心得体会.13六、参考文献.13一、实验目的文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。本实验的目的是,学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP 网络应用程序基本的设计方法和实现技巧。二、实验内容和要求2.1、实验内容我们的计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求学生利用这些功能,设计和实现一个简单的文件传送协议。2.2、具体要求用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能:get:取远方的一个文件put:传给远方一个文件pwd:显示远主当前目录dir:列出远方当前目录cd :改变远方当前目录? :显示你提供的命令quit :退出返回这此命令的具体工作方式(指给出结果的形式)可以参照FTP 的相应命令,有余力的同学可以多实现几个命令。最后,写出实验报告。三、实验主要仪器设备和材料联网计算机。四、实验方法、步骤及结构测试 Winsock编程原理 通过Winsock可实现点对点或广播通信程序,实际这两者之间的区别不大,编程时其 程序流程所用代码几乎相同,不同的地方在于目标地址选择的不同。 由于Winsock的服务是以动态链接库Winsock DLL形式实现的,因此先调用 1、WSAStartup对Winsock DLL进行初始化 2、应用程序关闭套接字后,还应调用WSACleanup终止对Winsock DLL的使用Winsock编程模型: 流套接字编程模型: 1 服务器进程创建套接字 socket2 将本地地址绑定到所创建的套接字 bind 3 将套接字置入监听模式并准备接受连接请求 listen,accept 4 客户进程调用socket函数创建客户端套接字 5 客户向服务进程发出连接请求 connect 6 当服务器接收到客户请求,阻塞的accept进程,生成新一个新的套接字与客户套接字建立连接,并向客户端返回接受信号 7 客户套接字收到服务器接受信号,表示连接建立成功,开始用 send, recv进行收发数据8 关闭套接字 先用 shutdown 再用 closesocket 数据报套接字编程模型: 1 服务器用socket创建,用bind绑定 2 用readfrom从网络上接收,收不到进入阻塞 3 客户端也用socket , bind绑定 4 客户端用 sendto发送数据 5 服务器端接收数据,用sendto进行响应 6 数据发送完两者调用closesocket进行套接字释放 Winsock I/O模型 阻塞模式:一直等待下去,不会立即返回 非阻塞模式:无论何都会返回关交出程序的控制权 4.3 FTP工作原理文件传输协议是从一个系统向另一个系统传递文件的标准方法。它的目标在RFC 0765中写得很清楚。FTP的目标是:1)促进文件和程序的共享2)鼓励间接和含蓄的使用远程计算机3)使用户不必面对主机间使用的不同的文件存储系统4)有效和可靠地传输文件。FTP,尽管用户可以直接通过终端来使用,是设计成让别的程序使用的。 FTP文件传输应用在客户/服务环境。请求机器启动一个FTP客户端软件。这就给目标文件服务器发出了一个请求。典型地,这个要求被送到端口21。一个连接建立起来后,目标文件服务器必须运行一个FTP服务软件。FTPD是标准的FTP服务daemon。它的功能很简单:回复inetd收到的连接请求,并满足这些要传输文件的请求。这个daemon在许多发行版的UNIX中是个标准。FTPD等待一个连接请求。当这样的一个请求到达时,FTPD请求用户登录。用户提供它的合法的登录名和口令或匿名登录。一旦登录成功,用户可以下载文件了。在某些情况下,如果服务器的安全允许,用户可以上载文件。程序部分: SendFileRecord(SOCKET datatcps,WIN32_FIND_DATA *pfd)/used to send response to clientchar filerecordMAX_PATH+32;FILETIME ft;FileTimeToLocalFileTime(&pfd-ftLastWriteTime,&ft); SYSTEMTIME lastwtime;FileTimeToSystemTime(&ft, &lastwtime); char *dir=pfd-dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY?: ;/判断目标文件是否为文件夹sprintf(filerecord,%04d-%02d-%02d %02d:%02d %5s %10d %-20sn, lastwtime.wYear,lastwtime.wMonth,lastwtime.wDay,lastwtime.wHour,lastwtime.wMinute,dir,pfd-nFileSizeLow,/文件大小pfd-cFileName /文件名);/格式此函数用来发送目录的内容。int SendFileList(SOCKET datatcps)HANDLE hff;/第/上一个文件的句柄WIN32_FIND_DATA fd; /搜索文件 /指向一个用于保存文件信息的结构体hff=FindFirstFile(*,&fd);if(hff=INVALID_HANDLE_VALUE)/发生错误const char *errstr=cant list files!n;printf(list file error!n);if(send(datatcps,errstr,strlen(errstr),0)=SOCKET_ERROR)printf(error occurs when senging file list!n);closesocket(datatcps);return 0;BOOL fMoreFiles=TRUE;while(fMoreFiles)/发送此项文件信息if(!SendFileRecord(datatcps,&fd)closesocket(datatcps);return 0;fMoreFiles=FindNextFile(hff,&fd);/搜索下一个文件closesocket(datatcps);return 1;此函数用于发送文件目录。4.6调试结果和本机连接输入并显示出帮助菜单从服务器端下载ck.txt文件put一个123.txt文件到服务器dir:pwd五、心得体会遇到的问题:数据包丢失。后来的数据把先来的数据淹没了。最后发现任何一方都不要再一个无等待的循环里发包,尽量把包组装到足够大时才发,这样可以减轻淹没问题和充分利用网络资源。通过这次的课程设计我对网络的各层次的运作又有了一次更加深刻地认识和了解,同时,也让我了解了编程知识牢固的重要性,有牢固的编程能力,才可以在此基础上对网络知识加以运用。在整个课程设计的过程中,我们设小组讨论,在争论和辩解中,认识到了许多的不足,在小组成员的相互帮助下,一点一点地改正错误,弥补不足,逐步提高自己的能力。此次的收益也不少:1.在编程中扎实了自己的基础编程知识,弥补
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 历年二级建造师管理真题及答案
- 危险化学品安全知识考题及答案
- 坚持梦想努力奋斗的话题作文8篇
- 六一作文1000字:六一趣事作文4篇
- 技术研发及成果转化合作协议书
- 《近代化学基础知识概览:高中化学入门教案》
- 无人机技术在医疗行业中的应用
- 社会实践活动对小学生的影响
- 环境污染隐患现状与发展趋势分析
- 夜空中的星愿抒情作文14篇
- 安全文明施工的安全检查与巡视制度
- 《金融服务礼仪》课件-项目三 金融行业员工的仪态礼仪
- 气象科普工作课题研究报告
- 三年级上册音乐教案-第九课-认识手风琴|湘艺版-
- 《农业保险》课件
- 酒店精装修项目施工情况的汇报范文
- 安全工程安全系统工程课程设计
- 《酒店销售技巧培训》课件
- 【基于杜邦分析体系的企业盈利能力分析文献综述及理论基础2700字】
- 2024届江苏泰州省泰中附中中考联考生物试卷含解析
- 岐黄天使中医西学中专项128学时试题答案
评论
0/150
提交评论