文件传输协议的简单设计与实现翎凌零

实验项目名称:文件传输协议的简单设计与实现

实验项目性质:综合性

所属课程名称:计算机网络

一、实验目的

文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。

本实验的目的是,学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP网络应用程序基本的设计方法和实现技巧。

二、实验内容和要求

1、实验内容

我们的计算机网络实验环境建立在TCP/IP网络体系结构之上。各计算机除了安装TCP/IP软件外,还安装了TCP/IP开发系统。实验室各计算机具备Windows环境中套接字socket的编程接口功能,可为用户提供全网范围的进程通信功能。本实验要求学生利用这些功能,设计和实现一个简单的文件传送协议。

2、具体要求

用socket编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能:

get:取远方的一个文件

put:传给远方一个文件

pwd:显示远主当前目录

dir:列出远方当前目录

cd:改变远方当前目录

?:显示你提供的命令

quit:退出返回

这此命令的具体工作方式(指给出结果的形式)可以参照FTP的相应命令,有余力的同学可以多实现几个命令。

最后,写出实验报告。

三、实验主要仪器设备和材料

联网计算机。

四、实验方法、步骤及结构测试

1)关于端口号(假设用SERV_PORT来表示)的设定,原则上2000至5000都可用,为避免冲突,建议取你学号后三位数加上2000,比如学号为971234,则可定义:

#defineSERV_PORT2234

2)客户和服务程序中要有相应的include文件(参考所给例子程序)

3)有些同学的server方程序支持多连接,为了不占用更多的系统资源,并发连接数限制在3个以内。

4)最后提交源程序,撰写实验报告,在实验报告中说明设计的思路。

五、程序设计方案

设计主要函数分析

client端函数

(1)DWORDStartSock()函数//启动winsock

(2)DWORDCreateSocket()//创建套接字

(3)DWORDCallServer()//发送连接请求

通过此函数创建与指定外都端口的连接

(4)DWORDTCPSend(chardata[])//发送命令

通过此函数发送客户端的命令

(5)voidlist(SOCKETsockfd)

通过此函数列出指定目录下的所有文件

(6)intSendFile(SOCKETdatatcps,FILE*file)

通过此函数传输目标文件

server端函数

(1)DWORDStartSock()//初始化winsock

初始化winsock以便client端连接

(3)intSendFileRecord(SOCKETdatatcps,WIN32_FIND_DATA*pfd)//用来发送当前文件记录

(4)intSendFileList(SOCKETdatatcps)//发送文件列表

(5)intSendFile(SOCKETdatatcps,FILE*file)//发送文件

(6)DWORDConnectProcess()//连接

通过此函数创建服务器监听、创建连接、根据客户端命令完成应答。

六、实验结果

客户端连接服务器

查看客户端文件路径、查看服务器文件列表

传输文件、获取文件

七、思考题

C/S:即客户端和服务器结构。客户端和服务器分别承担不同的任务。Client将用户的需求提交给Server,再将Server返回的结果以一定的形式提交给用户。Server的任务是按接收Client提出的服务请求,进行相应的处理,并将结果返回给Client。

在CS结构下,服务器程序通常在一个固定的地址监听客户端的请求。服务器进程通常下处于“休眠”状态,直到客户端对该服务发出连接请求,将其“唤醒”。此时,服务进程“醒来”并对客户端的请求作出适当的反应。

BS(Browser/Server),即浏览器与服务器结构。客户端运行浏览器,浏览器以超文本形式向web服务器提出访问数据库请求。Web服务器接受客户端请求后,将该请求转换为SQL语法,并对数据库进行访问,然后将结果返回给Web服务器。Web服务器再将该结果转换为HTML文档,返回客户端浏览器,以网页的形式显示出来。BS结构中,Web浏览器是客户端最主要的软件,系统功能实现的核心部分集中到服务器上。

1.1、B/S模式的优点和缺点

B/S结构的优点

(1)、具有分布性特点,可以随时随地进行查询、浏览等业务处理。

(2)、业务扩展简单方便,通过增加网页即可增加服务器功能。

(3)、维护简单方便,只需要改变网页,即可实现所有用户的同步更新。

(4)、开发简单,共享性强

B/S模式的缺点

(1)、个性化特点明显降低,无法实现具有个性化的功能要求。

(2)、操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。

(3)、页面动态刷新,响应速度明显降低。

(4)、无法实现分页显示,给数据库访问造成较大的压力。

(5)、功能弱化,难以实现传统模式下的特殊功能要求。

1.2、C/S模式的优点和缺点

C/S模式的优点

(1).由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。

(2).操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。

(3).C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。

C/S模式的缺点

(1).需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

(2).兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。

(1)3.开发成本较高,需要具有一定专业水准的技术人员才能完成。

2.1原理

由于FTP是顺序接收文件的,所以,只要计算已接收的数据大小,就可以知道断点在文件的偏移量,续传时,客户端将已接收的数据量传递给服务器,服务器使用这个作为偏移量继续读取文件,将剩余的数据发送至客户端,客户端仅需将接收到的数据追加至原文件尾部即可

2.2实现

以下载文件为例:

1)向服务器发送“REST+本地文件长度”命令,告诉服务器,客户端要断点下载了,服务器必须支持REST命令;

2)向服务器发送“RETR+文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据;

3)客户端定位本地文件指针(文件末尾);

4)两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件。

SMTP(SimpleMailTransferProtocol)是简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供与来信有关的通知。

超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

每个线程创建一个TCP连接,对应一个文件,采用循环接收,应答等机制来传送文件数据。N个这样的线程就对应而来正在下载N个文件

THE END
1.基于BS模式的人事管理系统的设计与实现经管...相似文件换一批 国民经济行业分类与国际标准行业分类(ISIC R...15.33 KB0个论坛币 如何用Stata实现...https://bbs.pinggu.org/thread-12477699-1-1.html
2.基于BS的项目管理系统的设计与实现为此,企业需要加强项目管理,建立有效的项目管理体系B/S在项目管理系统设计的基础上,功能强,能够满足现代企业对项目管理的要求。关键词:B/S;项目管理;系统设计项目管理是使项目能够按照预定的成本、质量和进度进行生产,通过计划、组织等活动完成资源的配置和使用,并详细分析成本、质量和风险,以满足项目实施的最终目标。https://www.77hub.com/zs/3916.html
3.医院BS架构信息管理系统设计与应用:研究医院业务管理流程, 为了改变传统的信息管理制约医院服务水平整体不高的现状, 也为了降低医院从业人员的劳动强度, 提高工作效率, 使医院真正实现各个部门办公同步进行。提出了BS架构的医院信息管理系统开发与应用的理念。系统设计从医院信息管理系统的需求分析入手, 并以门诊管理为代表, 详细讲述系统的详细设计和具体...https://www.iteye.com/resource/sohopeter-12233282
4.《SoC底层软件低功耗系统设计与实现李晓杰Linux内核性能优化...当当火把图书专营店在线销售正版《SoC底层软件低功耗系统设计与实现 李晓杰 Linux内核 性能优化 BSP 底层软件 CPU 芯片 芯片设计》。最新《SoC底层软件低功耗系统设计与实现 李晓杰 Linux内核 性能优化 BSP 底层软件 CPU 芯片 芯片设计》简介、书评、试读、价格、图片等相关http://product.dangdang.com/11479094632.html
5.基于BS方式的即时通讯软件的设计与实现毕业作品(24页)基于B/S方式的即时通讯软件的设计与实现摘 要即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,而各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。随着互联网的发展,即时通讯的运用将日益广泛,即时通讯软件业方兴未艾。本文首先描述了即时通讯业的发展和现状,然后初步...https://max.book118.com/html/2021/0629/7101105011003140.shtm
6.毕业设计毕设题目汇总(三)个人文章西部自驾游信息管理平台的设计与实现 基于B/S架构的园区车辆出入管理系统的设计与开发 基于wpf的学生管理系统的设计与实现 基于WPF的人事管理系统的设计与实现 基于区块链的去中心化密钥管理服务设计和实现 计算机网络管理及计费系统的设计与实现 基于Web的物流管理系统设计及实现 基于BS架构的信息管理系统设计与实现 ...https://segmentfault.com/a/1190000038169083?utm_source=sf-similar-article
1.基于BS的论文管理系统的设计与实现《基于BS的论文管理系统的设计与实现》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术: 开发语言:Java 框架:ssm 技术:jsp JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea ...https://blog.csdn.net/qiufangtaowvnyyidtf/article/details/143685030
2.基于BS校园二手商品交易管理系统的设计与实现本文的在基于B/S模式的基础上,应用JSP软件开发工具,通过深入研究大学校园的二手市场需求,设计与实现了一个校园二手信息发布平台。二手商品信息发布平台实现了具有以下功能:发布二手商品信息,学生可以根据自己的生活需求,将自己闲置的物品放在该平台上以较低价格出售,买家看到出售信息后可以根据上述信息主动联系买家,然后...https://d.wanfangdata.com.cn/thesis/D01142881
3.ASP基于BS结构的二手交易系统的设计与实现(源代码+设计说明书).zip本项目“ASP基于BS结构的二手交易系统”是一个综合性的在线平台,旨在为用户提供一个方便、安全且易于操作的二手商品买卖环境。系统通过ASP编程语言和相关技术栈构建,包括HTML/CSS前端页面设计、JavaScript动态交互实现以及后端数据库管理等。项目的核心功能涵盖了用户管理、商品发布与搜索、购物车与订单管理、支付接口集成、...https://www.coder100.com/index/index/content/id/4250631
4.基于springboot宠物领养管理系统的设计与实现宠物领养计划基于springboot宠物领养管理系统的设计与实现 宠物领养计划,项目编号:BS-PT-052项目说明:  本项目主要实现对流浪动物的救助和收养功能。前端用户可以注册并登陆,在系统前端页面可以实现对流浪动物相关知识的学习以及在线进行动物的收养操作。同时还为平台的运https://blog.51cto.com/u_13424/10874078
5.BS1071本医疗健康档案大数据采集清洗数据分析可视化的设计与实现,系统主要采用java,springboot,动态图表echarts,vue,mysql,mybatisplus,医疗健康档案数据分析,html,css,javascript等技术实现,主要通过互联网采集爬虫获取互联网医疗健康档案,对健康档案数据进行数据分析整合,数据处理成JSON格式,通过前端javascript解析JSON完成数据可视化...https://cloud.tencent.com/developer/article/2329946
6....项目源码技术教学ssm+vue708基于BS的库存管理软件设计与实现...ssm+vue708基于BS的库存管理软件设计与实现 源码 论文【项目源码下载】来源: www.bisheonline.net 发布日期:2024-11-12 点击率:000000021 价格:30.00元>>>查看系统运行视频<<< 开发技术 java mysql ,ssm框架 开发语言:Java 框架:ssm 技术:vue JDK版本:JDK1.8 服务器:tomcat7,8,9 数据库:mysql 8 数据库工...https://www.bisheonline.net/onebs.php?id=2173
7.管理系统毕业论文通用12篇3 系统设计与开发 3.1 系统研发的目的 毕业生毕业论文(设计)管理系统充分利用网络的优势,实现论文管理的网络化,使原本繁琐的选题问题简单,快捷,奏效。解放教辅人员和学生。学生能够根据教师所提交的题目,在联网的计算机上随时选择,更改自己的论文题目。教师可以在任意联网的计算机上论文信息,并实现选择其论文的学生信息的...https://dzjj.xueshu.com/haowen/4485.html