当前位置:首页>> >>


基于QT的UDP网络广播程序.rar

收藏

资源目录
    文档预览:
    编号:20180914220934452    类型:共享资源    大小:4.32MB    格式:RAR    上传时间:2018-09-15
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    50
    金币
    关 键 词:
    基于 QT UDP 网络 广播 程序
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸i基于 QT 的 UDP 网络广播程序摘 要现在随着计算机网络技术的不断发展,人类正进入信息化社会,使用网络进程信息的传送以成为社会的一种基本的方式,也是未来社会的发展方向。在企业网中,公司要求的速度和时间更为重要,这就要求在信息传送中能够达到快速,安全的目的。同时能够保证信息能够发送给所有的公司员工,这就要求这种网络协议能够使用最少的资源,同时给所有人员发送信息。UDP 是一项非常实用可行的网络传输层协议,现在广泛应用于各行各业,并将在今后发挥更大的作用。本文详细阐述了 Qt 开发环境下广播的实现方法。该系统采用用了基于 UDP 协议的实现网络广播。同时本论文采用了目前流行的图形界面设计 QT 技术,在底层用基本的 C/ C++语言实现,在上层用 QT 实现对界面的优化,及美化。最终实现 UDP 广播,程序运行起来可向多个用户发送 UDP 报文,并能够在界面上显示报文,用户与发送报文的可以相互通信。关键字:广播;QT;UDP太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸iiUDP broadcast network program based on QTAbstractNow the rapid development of computer network technology, man is entering the information society, the use of network information transmission process to become a basic mode of society, but also the future development direction of the society. In the enterprise network, companies require speed and time is more important, it requires to achieve fast in the information transmission, the purpose of safety. At the same time to ensure that information can be sent to all the employees of the company, which equires the network protocol can use the least resources, at the same time to all staff to send a message. UDP is a very practical network transport layer protocol is feasible, is now widely used in all walks of life, and will in the future play a greater role. This paper describes in detail the implementation method of the development environment of Qt broadcast.The system adopted by the network broadcast based on UDP protocol. At the same time, this paper uses a graphical interface design popular QT technologies, using basic C/ C++ language in the bottom, to realize the optimization of the interface with the QT on the upper layer, and landscaping.The final realization of UDP broadcasting, programs run up to multiple users send UDP message, and can display the message on the screen, can communicate with users and sending message.Keywords: broadcast;QT;UDP太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸目 录摘 要 ........................................................................................................................................iAbstract......................................................................................................................................ii1. 绪论 ....................................................................................................................................11.1 研究背景 ..................................................................................................................11.2 系统的可行性分析 ..................................................................................................11.2.1 技术方面的可行性 ......................................................................................11.2.2 经济方面的可行性 ......................................................................................21.3 展望 ..........................................................................................................................21.4 研究目标 ..................................................................................................................32. 相关技术理论 ....................................................................................................................42.1 UDP 协议 ...................................................................................................................42.2 UDP 报文 ...................................................................................................................42.3 套结字 ......................................................................................................................52.4 套接字地址:主机与端口 ......................................................................................72.5 端口号 ......................................................................................................................72.6 报头的校验值 ..........................................................................................................82.7 信号和槽机制 ..........................................................................................................83. 系统总体的描述 ..............................................................................................................103.1 系统基本简介和概要 ............................................................................................103.2 系统能够完成的功能概要 ....................................................................................103.3 软件的特点 ............................................................................................................103.3.1 单播的特点 ................................................................................................103.3.2 广播的特点 ................................................................................................103.3.3 系统创新点 ................................................................................................114. 系统分析与总体设计 ......................................................................................................124.1 系统需求分析 ........................................................................................................124.2 系统开发及运行环境 ............................................................................................124.3 系统主要功能要求 ................................................................................................124.4 系统总 体设计 ........................................................................................................134.5 各个模块的设计和功能 ........................................................................................154.5.1 单播模块 ....................................................................................................154.5.2 广播模块 ....................................................................................................164.6 系统的流程 ............................................................................................................165. 网络广播程序的详细设计 ..............................................................................................205.1 界面设计 .................................................................................................................205.2 模块功能设计 ........................................................................................................216. 软件测试 ..........................................................................................................................32太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸6.1 测试的目的及重要性 ...............................................................................................326.2 测试的方法 ...............................................................................................................326.3 测试用例 ....................................................................................................................33结论 ..........................................................................................................................................39参考文献 ..................................................................................................................................40致谢 ..........................................................................................................................................41外文原文 ..................................................................................................................................42中文翻译 ..................................................................................................................................48太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸11. 绪论1.1 研究背景近来随着计算机的快速发展,科学技术突飞猛进的发展,知识经济的初见端倪,目前基于 UDP 协议的信息传送程序给我们的生活带来的很大的方便,现在,企业、机关、学校都建立起了自己的局域网,在局域网里,我们可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布,自己共享内容的简介等。在学校里,UDP 广播可以起到方便同学之间,教师之间,师生之间的相互联络,这样,不用上 Internet,可以节省资源,在学校这个大环境里,就可以方便学校与同学之间,教师与同学之间的联络,学生可以通过它随时收听学校及导员发布的信息。并能最大度地利用现有的网络资源,极大地提高工作效率。为了适应校园网的建设,实现校园网内进行消息发布,学生交流,师生交流,网上作业等功能。在公司企业建立起的局域网里,应用于局域网内企业(组织)内部成员之间的交流领域,在没有因特网的支持下也可以进行即时通讯,亦因此使之更安全、更高效;同时因为它界面简洁实用,没有娱乐功能,所以简单易用,是企业(组织)成员更加专注于工作,减少不必要的财力和人力资源浪费。 ,对于企业来说提高企业的办事效率,提高企业的综合素质,是一个企业不断进步迈向一个新台阶的重要步骤。外了适应企业的快速发展,提高企业的管理水平,方便企业与内部员工的信息交流,节省办公开销,企业很需要这样一个程序。为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,设计用户数据报协议 UDP。UDP 是 Use Datagram Protocol 的简称,中文名用户数据报协议,是一种非连接式的通信协议,不需要建立有效的通讯连接,是 OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务. UDP 在 IP 报文的协议号是 17 ,UDP 有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的广播和多播是基于 UDP 协议的两种消息发送机制.广播数据即从一个工作站发出,局域网内的其他所有工作站都能收到它1.2 系统的可行性分析1.2.1 技术方面的可行性本软件通过 QT 技术基于 UDP 协议实现广播(Broadcast) ,单播(Unicast) ,(1)UDP 协议UDP 是 一 个 无 连 接 协 议 , 传 输 数 据 之 前 源 端 和 终 端 不 建 立 连 接 , 当 它 想 传 送 时 就简 单 地 去 抓 取 来 自 应 用 程 序 的 数 据 , 并 尽 可 能 快 地 把 它 扔 到 网 络 上 。 在 发 送 端 ,UDP 传 送 数 据 的 速 度 仅 仅 是 受 应 用 程 序 生 成 数 据 的 速 度 、 计 算 机 的 能 力 和 传 输 带 宽的 限 制 ; 在 接 收 端 , UDP 把 每 个 消 息 段 放 在 队 列 中 , 应 用 程 序 每 次 从 队 列 中 读 一 个消 息 段 。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸2UDP 是一个无连接协议,传输数据之前源端和终端建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP 传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP 把每个消息段放在队列中,应用程序每次从队列中读一个消息段。由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。UDP 信息包的标题很短,只有 8个字节,相对于 TCP 的 20 个字节信息包的额外开销很小。(2)QT 技 术QT 是 Trolltech 公 司 的 标 志 性 产 品 , 是 跨 平 台 的 C++图 形 用 户 界 面 ( GUI)工 具包 , QT 应 用 程 序 接 口 与 工 具 兼 容 于 所 有 支 持 平 台 , 让 开 发 员 们 掌 握 一 个 应 用 程 序 接口 , 便 可 执 行 与 平 台 非 相 关 的 应 用 开 发 与 配 置 。 它 对 不 同 平 台 的 专 门 API 进 行 专门 的 封 装 ( 文 件 处 理 , 网 络 等 ) , QT API 对 所 有 支 持 平 台 都 是 一 致 的 , 从 而 可 以 进行 独 立 于 平 台 的 程 序 开 发 和 配 置 。 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。(3)C++编程技术C++是一种面向对象的通用型程序设计语言,,他是一种更好的 C,支持抽象的数据,支持通用性程序设计,具有更好的可移植性。(4)TCP/IP 协议技术在 TCP/IP 协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议) 。TCP 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,UDP 则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。1.2.2 经济方面的可行性目前基于 UDP 和 QT 的技术的软件已经很多,但本软件强化了对单播、广播、组播的理解,能够根据他们的特性,在不同的应用场合选择使用不同的功能,并且在一些细节方面做出改进,改善图形化界面的可视效果,以及增删 button,便于用户操作,在市场上仍有广阔的发展空间。1.3 展望UDP 是 TCP/IP 协议族为传输层设计的两个协议之一,它在进程与进程的通信过程中,提供了有限的差错校验功能,是一种无连接的,不可靠的协议。UDP 在一个较低的水平上完成进程之间的通信,在收到分组的时候没有流量控制机制也没有确认机制,适用于可靠性比较高的局域网。由于 UDP 采取了无连接的方式,因此协议简单,在一些特定的应用中协议运行效率高。UDP 适合一些实时的应用,如 IP 电话,视频会议,它们要求源主机以恒定的速率发送数据,并且在网络出现拥塞时,可以丢失一些数据,但是太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸3延迟不能太大。基于这些特点,流式多媒体通信、多播等应用在传输层采用的就是 UDP协议。广播系统具有实用性、经济性、便捷性等特点,广泛应用于各种公共场合。在楼宇智能消防系统中,它实现了报警控制中心向各分控点的语音广播。在灾时疏散人员、调配现场工作人员,它都发挥着不可替代的作用,消防广播是系统中的关键组成部分之一,已经成为其中不可缺少的组成部分。在网络会议中,服务器端负责进行用户管理、信息交互以及表决统计;客户端则实现收听发言,公开发言,私下讨论、投票表决等功能。在学校的考试系统中,老师通过服务端通过广播的形式负责试题的发送,学生在客服端接收试题,并且对试题的异常可以提出申请,老师收到申请后,以单播的形式处理异常,保证每个考生顺利完成考试。因为 UDP 具有 TCP 所望尘莫及的速度优势。虽然 TCP 协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观 UDP 由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成。目前基于 UDP 协议的信息传送程序给我们的生活带来的很大的方便,对于企业来说提高企业的办事效率,提高企业的综合素质,是一个企业不断进步迈向一个新台阶的重要步骤。外了适应企业的快速发展,提高企业的管理水平,方便企业与内部员工的信息交流,节省办公开销,企业很需要这样一个程序。而且,如果这样的程序还是跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT 正是一个支持多平台的 C++图形用户界面应用程序框架。它提供给应用程序开发者建立图形用户界面所需的所用功能。Qt 是完全面向对象的很容易扩展,并且允许真正地组件编程。所以使用 QT 作为应用程序框架是一个不错的选择。1.4 研究目标现在科技越来越发达,手机上的软件,电脑上的软件越来越多,所以开发小的程序也越来越有必要。QT 具备跨平台,易扩展,性能稳定等优点。因此,以嵌入式处理器作为硬件平台,以 QT 作为程序框架,两者的完美结合必将成为未来技术的发展方向。基于上述背景,开发一个 UDP 网络广播项目,使用 linux 搭配 qt 来构建这个项目。利用 QT4 作为系统应用层的程序框架。开发一个可以运行的网络广播程序。这个程序虽然是在 linux 下开发的,但是它是可移植的,在 windows 下也可以运行。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸42. 相关技术理论2.1 UDP 协议UDP 协议的全称是用户数据报协议,在网络中它与 TCP 协议一样用于处理数据包,是一种无连接的协议。在 OSI 模型中,在第四层——传输层,处于 IP 协议的上一层。UDP 有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP 用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式彩已经被一些类似协议所掩盖,但是即使是在今天 UDP 仍然不失为一项非常实用和可行的络传输层协议。与所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议的顶层。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。UDP 协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。UDP 是 OSI 参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成[1],提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协议适用端口分别运行在同一台设备上的多个应用程序。2.2 UDP 报文UDP 报头由 4 个域组成,其中每个域各占用 2 个字节,具体如图 2-1 UDP每个 UDP 报文分 UDP 报头和 UDP 数据区两部分。报头由四个 16 位长(2 字节)字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验值。图 2-1 UDP 报文分层封装:在 TCP/IP 协议层次模型中,UDP 位于 IP 层之上。应用程序访问 UDP层然后使用 IP 层传送数据报。IP 层的报头指明了源主机和目的主机地址,而 UDP 层的报头指明了主机上的源端口和目的端口。分解操作:UDP 的复用、分解与端口UDP 软件应用程序之间的复用与分解都要通过端口机制来实现。每个应用程序在发送数据报之前必须与操作系统协商以获得协议端口和相应的端口号。UDP 分解操作:从 IP 层接收了数据报之后,根据 UDP 的目的端口号进行分解操作。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸5UDP 协议使用端口号为不同的应用保留其各自的数据传输通道。UDP 和 TCP 协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将 UDP 数据包通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为 UDP 报头使用两个字节存放端口号,所以端口号的有效范围是从 0 到 65535。一般来说,大于 49151 的端口号都代表动态端口。数据报的长度是指包括报头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载) 。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535 字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到 8192 字节。2.3 套结字应用层通过传输层进行数据通信时,TCP 和 UDP 会遇到同时为多个应用程序进程提供并发服务的问题。多个 TCP 连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCP/IP 协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。网络化的应用程序在开始任何通讯之前都必需要创建套接字。就像电话的插口一样,没有它就完全没办法通信。生成套接字,主要有 3 个参数:通信的目的 IP 地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。Socket 原意是“插座”。通过将这 3 个参数结合起来,与一个 “插座” Socket 绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 Socket 可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入 Socket 中,该 Socket 将这段信息发送给另外一个 Socket 中,使这段信息能传送到其他程序中,如图 2-2 详细描述了套接字。图 2-2 关于套接字上图,Host A 上的程序 A 将一段信息写入 Socket 中,Socket 的内容被 Host A 的网络管理软件访问,并将这段信息通过 Host A 的网络接口卡发送到 Host B,Host B 的太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸6网络接口卡接收到这段信息后,传送给 Host B 的网络管理软件,网络管理软件将这段信息保存在 Host B 的 Socket 中,然后程序 B 才能在 Socket 中阅读这段信息。假设在图中的网络中添加第三个主机 Host C,那么 Host A 怎么知道信息被正确传送到 Host B 而不是被传送到 Host C 中了呢?基于 TCP/IP 网络中的每一个主机均被赋予了一个唯一的 IP 地址,IP 地址是一个 32 位的无符号整数,由于没有转变成二进制,因此通常以小数点分隔,如:198.163.227.6,正如所见 IP 地址均由四个部分组成,每个部分的范围都是 0-255,以表示 8 位地址。值得注意的是 IP 地址都是 32 位地址,这是 IP 协议版本 4(简称 Ipv4)规定的,目前由于 IPv4 地址已近耗尽,所以 IPv6 地址正逐渐代替 Ipv4 地址,Ipv6 地址则是128 位无符号整数。假设第二个程序被加入图中的网络的 Host B 中,那么由 Host A 传来的信息如何能被正确的传给程序 B 而不是传给新加入的程序呢?这是因为每一个基于 TCP/IP 网络通讯的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留Socket 中的输入 /输出信息,端口号是一个 16 位无符号整数,范围是 0-65535,以区别主机上的每一个程序(端口号就像房屋中的房间号) ,低于 256 的短口号保留给标准应用程序,比如 pop3 的端口号就是 110,每一个套接字都组合进了 IP 地址、端口、端口号,这样形成的整体就可以区别每一个套接字。要通过互联网进行通信,至少需要一对套接字,一个运行于客户机端,称之为 ClientSocket,另一个运行于服务器端,称之为 serverSocket。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套字的地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。套接字起源于 20 世纪 70 年代加州大学伯克利分校版本的 Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字 ”或“BSD 套接字” 。一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯。这也被称作进程间通讯,或 IPC。套接字有两种,分别是基于文件型的和基于网络型的。Unix 套接字是我们要介绍的第一个套接字家族。其“家族名” 为 AF_UNIX(在POSIX1.g 标准中也叫 AF_LOCAL) ,表示“地址家族:UNIX” 。包括 Python 在内的大多数流行平台上都使用术语“地址家族” 及其缩写“AF” 。而老一点的系统中,地址家族被称为“域”或“ 协议家族”,并使用缩写“PF”而不是 “AF”。同样的,AF_LOCAL(在2000-2001 年被列为标准)将会代替 AF_UNIX。不过,为了向后兼容,很多系统上,两者是等价的。Python 自己则仍然使用 AF_UNIX。由于两个进程都运行在同一台机器上,而且这些套接字是基于文件的。所以,它们的底层结构是由文件系统来支持的。这样做相当有道理,因为,同一台电脑上,文
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于QT的UDP网络广播程序.rar
    链接地址:http://www.gold-doc.com/p-158453.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开