UDP文件资料传输的设计与实现

上传人:无*** 文档编号:83446522 上传时间:2022-05-01 格式:DOC 页数:9 大小:112KB
返回 下载 相关 举报
UDP文件资料传输的设计与实现_第1页
第1页 / 共9页
UDP文件资料传输的设计与实现_第2页
第2页 / 共9页
UDP文件资料传输的设计与实现_第3页
第3页 / 共9页
点击查看更多>>
资源描述
word实训专题报告题 目:UDP文件传输系的设计 实训名称: 班 级: 学 号: 学生某某: 指导教师: 某某工程大学2013年8月30日7 / 9摘要UDP(User Datagram Protocol)协议的全称是用户数据报协议,在网络中它与TCP(Transmission Control Protocol)协议一样用于处理数据包,是一种无连接的协议。UDP有不提供数据包分组、组装和不能对数据包进展排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户-服务器模式的网络应用都需要使用UDP协议1。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。本文在应用现有的C语言应用开发知识根底上,又应用了socket和多线程编程技术的有关知识。使用C语言以与标准库函数,在Windows平台上,开发基于UDP协议的文件传输系统。对UDP文件传输系统的调试结果显示:UDP文件传输系统实现了文件在客户端和服务端之间的发送和接收,传输过程中可显示文件信息,在传输过程中可中断传输,但暂时还不能保证完全不丢包。关键词:文件传输;socket编程技术;根本功能当前的世界经济正在从工业经济向知识经济转变,这种以知识为根底的经济有两个重要的特点,就是信息化和全球化。而要实现信息化和全球化,就必须依靠完善的网络。计算机网络是核心,而信息的交流又是计算机网络中非常重要的局部,因此UDP协议就占了很大比重。由于UDP不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,比如我们聊天用的QQ所使用的就是UDP协议。虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。UDP广泛应用在多媒体应用中,例如Progressive Networks公司开发的RealAudio软件,该软件所使用的协议就是基于UDP之上的协议,大多数因特网软件产品也都是基于UDP协议的。基于以上分析,本文要涉与的UDP文件传输系统设计是一个具备根本功能的嵌入式系统。1需求分析与系统总体设计 需求分析基于UDP文件传输系统应包含以下功能:在服务端和客户端实现根本的文件传输;在文件传输过程中显示文件的信息;在文件传输过程中可以取消文件传输过程。具体目标如下:1在客户端主机上能读取一个txt文件与服务端主机进展传输。2在传输过程中能显示文件信息,如文件名、保存路径、文件大小、传输进度等。3传输过程中可以选择中断文件传输过程。4本程序中要保证文件在传输的过程中实现完整传输,即不丢包。5界面尽量简洁大方,程序运行时不要出现异常。本章主要讨论了系统的需求分析,从用户角度分析系统整体要实现的功能。需求分析表如表所示。 系统总体设计本软件是为了使文件传输变得更加方便、快捷和安全,所以设计难点是在传输控制方面,对于本软件来说,用户界面设计如此不是那么重要。程序设计过程主要是通过Winsock控件进展UDP文件传输。分别在发送端和接收端建立控件Winsock,经过对Winsock控件程序的写入,然后通过端口号和IP地址的绑定来建立联系,直接可以传送文件,而且能准确地发送和接收。UDP文件传输系统主要是在客户端与服务端之间进展文件的传输,首先在一台计算机中选取一个文件,通过输入文件所在位置来实现的该文件的读写,然后进展分包处理以便于后续的文件传送。在文件传输过程中要求显示文件信息,如文件名、保存路径、文件大小、传输进度等,使用户清楚文件传输的情况以便选择继续或取消,所以该软件还具备随时中断文件传输的功能。待文件发送后,另一台计算机要求能够接收该文件并读取、保存在计算机内。因此,开发人员需要编写两方面的代码,即服务端代码和客户端代码,然后再将这两局部的代码结合起来,本程序也不例外,需要编写这两方面的代码。系统功能模块图如下列图。UDP文件传输系统功能描述:1客户端与服务端能够相互连接;2客户端与服务端能进展文件的发送和接收;3服务端能够完整地接收并读取客户端所发送的文件;4能够在文件传输过程中中断该传输。需求分析表如表所示表1.1 需求分析表需求功能需求描述文件分包处理1、将一个文件分成假如干小包以便于文件的传输文件发送1、文件能在客户端和服务端之间进展传输;2、在传输过程中能够显示文件信息,如文件名、保存路径、文件大小、传输进度等文件接收与读取1、能够接收文件;2、能够读取文件2 UDP文件传输系统根本功能的实现 实现“文件分包处理功能首先使用WSAStartup()函数检查系统协议栈的安装情况,然后使用socket()函数创建套接口1,以确定协议类型,再调用bind()函数将创建的套接口与本地地址绑定,目的是确定本地地址和端口号2。然后再在计算机中选择一个文件进展读取工作,通过调用fread,fwrite,fopen,fclose等函数实现对文件的打开、读写和关闭,通过输入文件所在位置来查找文件,假如目标文件存在,如此继续执行程序,将所选文件分装在定义数组内,等待传输;假如目标文件不存在,如此输出“ERROR跳出程序执行。基于UDP文件传输系统文件分包处理UDP文件传输客户端控制协议图1.1 系统功能模块图2.2实现“文件传输功能要实现该功能,需要调用recvfrom函数和sendto函数来实现文件的接收功能和发送功能。文件传输完毕后,使用closesocket()函数关闭套接口,最后调用WSACleanup()函数,完毕Windows Sockets API3。2.3实现“客户端接收功能首先使用socket()来建立一个UDP socket(),第二个参数为SOCK_DGRAM。然后初始化sockaddr_in结构变量并赋值。接着使用bind()把上面的socket()和定义的IP地址和端口绑定。这里检查bind()是否执行成功,如果有错误就退出。这样可以防止服务程序重复运行的问题。最后进入无限循环程序,使用recvfrom()进入等待状态,直到接收到客户程序发送的数据,就处理收到的数据,并向客户程序发送反应。这里是直接把收到的数据发回给客户程序。UDP文件传输系统主界面图如下列图。图2.1 UDP文件传输系统主界面图3 UDP文件传输系统的调试与运行随着计算机网络的不断开展,软件调试技术也逐渐成熟,调试方法也越来越多样化,针对性更强。大体上来讲软件调试可分为两类:静态调试和动态调试。静态调试,即先输出存放器的内容。在测试中出现问题,设法保存现场信息。把所有存放器和主存中有关局部的内容打印出来,进展分析研究。用这种方法调试,输出的是程序的静止状态程序在某一时刻的状态为取得关键变量的动态值,在程序中插入打印语句。这是取得动态信息的简单方法,并可检验在某时间后某个变量是否按预期要求发生了变化。此方法的缺点是可能输出大梁需要分析的信息,必须修改源程序才能插入打印语句,这可能改变关键的时序关系,引入新的错误。而动态调试如此通常利用程序语言提供的调试功能或专门的调试工具来分析程序的动态行为。一般程序语言和工具提供的调试功能有检查主存和存放器;设置断点,即当执行到特定语句或改变特定变量的值时,程序停止执行,以便分析程序此时的状态。4本程序如此主要是对程序的每一个功能逐一测试,针对出现的问题不断调试,修改代码,最后达到满意的效果。本软件测试采用动态测试方法。其中关键的技术是如何设计有效的测试用例,以便用最小的代价达到测试的目的。软件需求测试结论在经过对各模块的测试后,已经能够证实该软件各方面的能力都可以。只是在支持播放格式上还有待加强。测试分析报告是在测试分析的根底上,对测试的结果以与测试的数据等加以记录和分析总结。它也是测试过程中的一个重要环节,同时,它也是对软件性能的一个总的分析和认可与对不足之处的说明。因此,测试分析报告对于今后对软件的功能的加强,不足之处的弥补等都起着十分重要的提纲作用。另外,它还有利于今后软件开发者阅读原程序,根据测试提供的数据和结果,分析原代码,掌握各函数的功能和局限性。从而缩短软件开发者的再开发时间和所消耗的精力。从这方面上,我们不难发现,测试分析报告所指明的对象主要是针对于软件开发者5。4结论该系统实现了文件在服务端与客户端之间的传输,并对该传输过程加以控制,即保证文件的完整传输和可在传输过程随时中断该过程。UDP文件传输系统的开发主要应用了C语言编程技术和多线程编程技术。C语言知识的运用使得UDP文件传输系统的根本功能很容易地实现了,对代码的优化、缩减是对C语言编程的再一次应用。虽然UDP是一种不可靠的网络协议,但是在绝大多数情况下UDP协议都是非常有用的,因为UDP具有TCP所望尘莫与的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到了严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序功能交给上层应用来完成,极大,极大降低了执行时间,使速度得到了保证。Winsock规X不是一种网络协议,而是一套开放的、支持多种协议的Windows写的网络编程接口。Winsock可以访问很多种网络协议,可以把它当做一种协议的封装。在使用Winsock进展编程时,需要在指令中调用API函数,与Winsock有关的API,即WSAStartup函数,初始化Winsock服务,才能调用Winsock API函数;WSACleanup函数,用来终止Winsock的使用;socket函数、closesocket函数、send函数、recv函数、bind函数、 listen函数、accept函数、connect函数等。用connect()调用建立与另一套接口的连接,连接成功后,即可用send()和recv()传送数据。当会话完毕后,调用closesocket()。带外数据根据规定用send()和recv()来接收。如果终端协议有缓冲区空间,且数据不能在一定时间成功发送,如此认为连接中断,其后续的调用也将以WSAETIMEOUT错误返回。SOCK_DGRAM类型套接口允许使用sendto()和recvfrom()从任意端口发送或接收数据报。如果这样一个套接口用connect()与一个指定端口连接,如此可用send()和recv()与该端口进展数据报的发送与接收。UDP文件传输系统虽然可以实现文件的传输,传输过程可现实文件信息,如文件名、保存路径、文件大小、传输进度等,还可以在传输过程中随时取消该进程,传输速度非常快,且操作简单,这些都是UDP传输系统的优点。但是仍然存在很多不足,在传送小文件时缺点表现还不明显,而传输大文件时总是或多或少的存在丢包的现象,该问题始终没有很好的解决,用户界面方面没有什么显著特点,不够美观,这些还需要后期开发时再对UDP文件传输系统进展改良和优化。参考文献1 罗莉琴,詹祖桥.Windows网络编程M.:人民邮电。2001.2 ,.C程序设计语言M.:机械工业.2004.3 Stephen Prata.C Primer PlusM.:人民邮电.20054 Matt Telles,Yuan Hsieh.程序调试思想与实践M.:中国水利水电.2002.5 赛奎春.Visual C+工程应用与项目实践M.:机械工业.2005.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!