ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:93.07KB ,
资源ID:15072416      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15072416.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整word版基于TCP的文件传输实验报告Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整word版基于TCP的文件传输实验报告Word文件下载.docx

1、1、TCP/IP的网络体系结构.3、TCP/IP网络协议 .43、TCP传输控制协议.42、winsock控件 .52.1.1、winsock的重要属性、方法和事件.52.1.2、winsock控件通信的工作原理.73、程序设计与实现.8、程序设计.83.1.1、总体设计.83.1.2、模块设计.9、程序实现.103.2.1、工作原理.103.2.2、服务器端主程序.113.2.3、客户端主程序.144、实验总结.17参考文献.17.成绩评定.18基于协议的文件传输系统摘要随着网络的普及,网络编程显得尤其重要。本实验使用Winsock控件实现两台计算机间的文件传输,描述了Winsock控件的使

2、用方法及有关文件传输的算法。 随着计算机网络的迅速发展,人们的生活越来越离不开网络,如今网络编程已成为计算机发展的热点,而在众多的网络通信中,又以TCP/IP协议最为流行。本文讨论的Winsock控件,提供了访问TCP/IP网络的捷径,使用它可以不必了解TCP/IP的细节和调用Winsock API,只要设置好相应的属性和触发事件后的处理,就可以实现计算机之间的数据通信,进行文件传输了。同时为了便于传输文件过程中的中断现象,在实验时应该充分考虑断点续传问题,即中断文件传输后已经传输的文件不丢失,等到再传时,能继续接着传送。关键词 :TCP/IP协议,Winsock控件,网络编程,文件传输,断点

3、续传。1、 实验的相关知识通信的模式由于是实现点对点的文件传输,因此在程序中我们使用的是C/S的模式来实现通信。对于C/S的模式,即分为客户端和服务端。服务端用来接收客户端的连接,实现两端之间互相传输文件。采用C/S的模式可以更好的体现程序的功能设计思想,充分调用在LAN中的server和client两方面的处理能力,极大的减少网络上的信息流通量。C/S体系结构有可能提供一种开放式的、易伸缩扩展的分布式计算机环境,并保护硬件等投资。1.1.1 传输的可靠性要想实现文件的可靠性传输,可以使用流式套接字。因为流式套接字提供面向连接的、无差错的、发送顺序一致的、包长度不限和非重复的网络信息的传输,能

4、提供更好的可靠性。而对于数据报套接字提供的是无连接的服务,以独立的数据报进行传输,不保证顺序性、可靠性和无重复性,相比之下用流式套接字能提供更好的的可靠性传输。1、2、1TCP/IP的网络体系结构TCP/IP协议采用层次体系结构,如图1所示,从图中可以看出,每一层在逻辑上都与通信端的对应层相连接。图中所示的服务器程序持续监听通信客户端;客户端仅周期性地与服务器相连接以交换数据,其中TCP协议层提供相当于OSI参考模型中传输层的服务,为收、发端应用程序提供通信;IP协议层负责提供统一的数据报;链路层主要功能是收、发IP层的IP数据报;TCP/IP之上是该协议提供的各种服务,而底层网络可以是不同的

5、物理网络,如Ethernet、Token Ring、公共分组交换网等。图1 TCP/IP协议层模型(LAN)1、2、2 TCP/IP网络协议协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机彼此交流的一种“语言”。网络通信协议设计的基本原则是层次化,层和协议的集合被称为网络体系结构。相邻层之间的接口定义了下层向上层提供的基本操作和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务。计算机网络中已经形成的网络体系结构主要有两个:OSI参考模型和TCP/IP参考模型。TCP/IP参考模型是因特网(Internet)的基础。和OSI的7层协议相比,TCP/IP协议只有

6、4个层次。通常说的TCP/IP是一组协议的总称,TCP/IP实际上是一个协议族,包括100多个相互关联的协议,其中IP(Internet Protocol, 网际协议)是网络层最主要的协议;TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议是传输层中最主要的协议),一般认为IP、TCP、UDP是最根本的三种协议,是其他协议的基础。1.2.3 TCP传输控制协议面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的确认,如果未收到数据或者数据被损坏,则请求重新传输。TCP协议就使用

7、这种可靠通信。使用TCP协议的应用层协议包括HTTP、FTP、SMTP和Telnet等。TCP要求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被动打开(passive open)的操作,以利用一个已知的端口号创建一个链接,这是,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。客户应用程序必须执行一个主动打开(active open),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。客户应用程序可以将动态端口号作为本地端口使用。服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN)。随后,客户回复一个ACK,这样就建立了链接。现在可以发送和接收消息

8、了。接收消息后,总是返回ACK消息。如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送。由于它的握手机制,所以TCP协议比较复杂并且费时,但此协议在处理数据时对数据包的传送有保障,从而使得在应用程序协议中不需要再包括该功能。2. Winsock控件Winsock即Windows Sockets规范的简称,是目前最流行的网络通信应用程序接口之一。所谓Socket,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以

9、较为方便的编写网络上数据的传递。Winsock控件工作在传输层上,在这一层上,目前主要流行的协议包括TCP和UDP两种:TCP协议适用于那些对于数据的可靠性要求比较高的情况,目前大多数的网络应用层协议都是基于TCP协议的(例如常用的HTTP、FTP、SMTP、POP3等协议);UDP协议适用于对数据可靠性要求不高而对速度要求较高的情况,这里主要包括一些需要大流量的(例如Real公司的RTSP协议,腾讯公司的QQ协议等)。2.1.1 Winsock控件重要属性、方法和事件(1) 属性Protocol:通过Protocol属性可以设置WinSock控件连接远程计算机使用的协议。可选的协议是TCP和

10、UDP,对应的VB中常量分别是sckTCPProtocol和sckUDPProtocol,Winsock控件默认协议是TCP。注意:虽然可以在运行时设置协议,但必须在连接未建立或断开连接后。SocketHandle:SocketHandle返回当前socket连接的句柄,这是只读属性。RemoteHostIP:返回远程计算机的IP地址。在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,而在服务器端,当ConnectRequest事件后,远程计算机(客户端)的IP地址就赋给了这个属性。如果使用的是UDP协议那么当DataArrival事件后,

11、发送UDP报文的计算机的IP才赋给了这个属性。ByteReceived:返回当前接收缓冲区中的字节数。State:用于返回当前WinSock控件的状态。如表2-1所示。表1-1 返回WinSock控件当前的状态常数值描述sckClosed缺省值,关闭SckOpen1打开SckListening2侦听sckConnectionPending3连接挂起sckResolvingHost4识别主机sckHostResolved5已识别主机sckConnecting6正在连接sckConnected7已连接sckClosing8同级人员正在关闭连接sckError9错误(2) 方法Bind:用Bind方法可以把一个端口号固定为本控件使用,使得别的应用程序能再使用这个端口。Listen:只在使用TCP协议时有用。它将应用程序置于监听检测状态。Connect:当本地计算机希望和远程计算机建立连接时,就可以调用Connect方法。Accept:当服务器接收到客户端的连接请求后,服务器有权决定是否接受客户端的请求。SendData:当连接建立后,要发送数据就可以调用SendData方法,该方法只有一个

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1