- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
报告编号:11
综合课程设计报告
基于UDP协议的文件传输系统的设计与实现
学生姓名:
指导教师:
所 在 系: 电 子 系
所学专业: 电子信息工程
年 级: 08级电子(2)班
2011 年 6 月
目 录
摘 要 3
1 实验的相关知识 4
1.1通信的模式 4
1.2 UDP协议 4
1.3 Winsock控件 5
1.3.1 Winsock控件重要属性、方法和事件 5
1.3.2 Winsock控件通信的工作原理 7
2 实验原理 7
3 实验步骤 8
3.1总体规划 8
3.2模块设计 8
3.3创建窗体 9
3.4程序设计 10
3.5系统运行 12
4实验结论 13
参考文献 14
基于UDP的文件传输的系统的设计与实现
摘 要
该实验的任务是实现文件的传输,并且是基于UDP协议的。所有文件在该协议下可以实现发送并正确接收。此时需要了解的是UDP的数据包一次最多只能发送8K,所以我们想到通过拆包和创建窗体的方法来实现文件的传输。拆包主要是规定每个数据包的大小,然后计算具体的文件所需要的包数,创建窗体的目的是编写程序来进行分包发送和接收。通过系统运行窗体我们可以知道UDP不仅可以传送和接收小文件,还可以传输和接收较大的文件。通过实验可知UDP是不可靠的无连接传输,所以在传输过程中会发生丢包的情况,但大部分情况下传输还是比较好的。
关键词:UDP协议 发送文件 接收文件 拆包 Winsock控件
1 实验的相关知识
1.1通信的模式由于是实现点对点的文件传输,因此在程序中我们使用的是C/S的模式来实现通信。对于C/S的模式,即分为客户端和服务端。服务端用来接收客户端的连接,实现两端之间互相传输文件。采用C/S的模式可以更好的体现程序的功能设计思想,充分调用在LAN中的server和client两方面的处理能力,极大的减少网络上的信息流通量。C/S体系结构有可能提供一种开放式的、易伸缩扩展的分布式计算机环境,并保护硬件等投资。Winsock即Windows Sockets规范的简称,是目前最流行的网络通信应用程序接口之一。所谓Socket,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。Winsock控件工作在传输层上,在这一层上,目前主要流行的协议包括TCP和UDP两种:TCP协议适用于那些对于数据的可靠性要求比较高的情况,目前大多数的网络应用层协议都是基于TCP协议的(例如常用的HTTP、FTP、SMTP、POP3等协议);UDP协议适用于对数据可靠性要求不高而对速度要求较高的情况,这里主要包括一些需要大流量的(例如Real公司的RTSP协议,腾讯公司的QQ协议等)。Protocol:
通过Protocol属性可以设置WinSock控件连接远程计算机使用的协议。可选的协议是TCP和UDP对应的VB常量分别是sckTCPProtocol和sckUDPProtocol,Winsock控件默认协议是。RemoteHostIP:
返回远程计算机的IP地址。使用的是UDP协议那么当DataArrival事件后,发送UDP报文的计算机的IP才赋给了这个属性。在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,而在服务器端,当ConnectRequest事件后,远程计算机(客户端)的IP地址就赋给了这个属性。ByteReceived:
返回当前接收缓冲区中的字节数State:
用于返回当前WinSock控件返回WinSock控件当前的状态常数值描述sckClosed 0 缺省值,关闭SckOpen 1 打开SckListening 2 侦听)sckConnectionPending 3 连接挂起)sckResolvingHost 4 识别主机sckHostResolved 5 已识别主机sckConnecting 6 正在连接)sckConnected 7 已连接)sckClosing 8 同级人员正在关闭连接)sckError 9 错误Bind:
用Bind方法可以把一个端口号固定为本控件使用,使得别的应用程序能再使用这个端。Listen:
只在使用TCP协议时有用。它将应用程序置于监听检测状态。Connect:
当本地计算机希望和远程计算机
文档评论(0)