当前位置:文档之家› 基于QT的UDP广播程序报文

基于QT的UDP广播程序报文

郑州大学毕业设计(项目报告)

题目:基于QT的UDP广播报文程序

指导教师: xx 职称:讲师

学生姓名:xxx 学号:xxxxxxxxx

专业:计算机科学与技术(网络工程)

院(系):软件学院

完成时间:2011-12-10

2011年12 月10日

目录

摘要 (3)

1前言 (4)

1.1,软件开发的意义和前景 (5)

1.2,软件所要实现的功能和最终目标 (5)

2软件开发的可行性研究 (5)

2.1,技术方面的可行性 (6)

2.2,,济方面的可行性 (6)

2.3,开发方案的选择性和开发进程的研究 (7)

2.3.1,开发方案的选择 (7)

2.3.2,开发进程的研究 (7)

3 系统总体的描述 (8)

3.1, 系统基本简介和概要 (8)

3.2,系统能够完成的功能概要 (8)

3.3,整个软件的特点 (8)

3.3.1,广播方面的特点 (8)

3.3.2,单播方面的特点 (8)

3.3.3,组播方面的特点 (8)

3.3.4,系统的创新点 (8)

3.4,设计的目的 (9)

4 总体设计和功能实现 (9)

4.1,功能模块的设计和功能 (9)

4.1.1,功能模块图 (10)

4.1.2,广播模块 (10)

4.1.3,单播模块 (11)

4.1.4,组播模块 (11)

4.2,系统的流程 (12)

4.2.1,广播消息接收和发送流程图 (12)

4.2.2,单播消息接收和发送流程图 (14)

4.2.3,组播消息接收和发送流程图 (19)

5 软件测试 (25)

5.1,测试的环境和目的 (25)

5.2,测试的模块 (25)

5.2.1,广播模块的测试 (25)

5.2.2,单播模块的测试 (27)

5.2.3,组播模块的测试 (28)

5.4,整体软件的测试 (29)

5.5,测试的结论 (30)

6 总结 (31)

致谢 (32)

参考文献 (33)

摘要

现在的计算机网络技术飞速发展,使用网络进程信息的传送以成为社会的一种基本的方式,也是未来社会的发展方向。在企业网中,公司要求的速度和时间更为重要,这就要求在信息传送中能够达到快速,安全的目的。同时能够保证信息能够发送给所有的公司员工,这就要求这种网络协议能够使用最少的资源,同时给所以的人员发送信息。

该系统才用了基于UDP协议的三种消息的发送机制,广播,单播和组播。通过三种不同的消息发送机制,可以实现一对一,一对多的消息发送。同时组播也可以是实现对同一个组内发送消息,保证了消息的安全性和保密性。同时本论文采用了目前流行的图形界面设计的QT技术,在底层用基本的c语言实现,在上层用QT实现对界面的优化,保证软件的可操作性。最后文章也给出了对整个软件的测试和对各个模块的单独的测试。

关键字:QT,UDP,广播,单播,组播

Absract

Now the rapid development of computer network technology, the process oftransmission of information using the Internet to become a basic way, but also thefuture direction of social development. In the enterprise network, the company requested the speed and time is more important, which requires transmission of information to achieve fast and security. At the same time to ensure that informationcan be sent to all employees, which requires that the network protocol to use minimal resources, while giving it the person sending the message.

The system is based on UDP protocol with only three message delivery mechanism, broadcast, unicast and multicast. Send a message through three differentmechanisms, one can, one to many messaging. While multicast can also beachieved for the same group to send messages to ensure message security andconfidentiality. While this paper uses a popular graphical interface designed QT technology, at the bottom with a basic c language, in the upper interface using QT to achieve optimized to ensure the operability of the software. Finally, the article alsogives the entire software testing and test each module separately.

Keywords: QT, UDP, broadcast, unicast, multicast

1 前言

1.1软件开发的意义和前景:

UDP协议,即拥护数据报协议(Use Datagram Protocol).是一个简单的面向数据报的传输层协议.他不提供可靠性,即只把应用程序传给IP层的数据发送出去,但是并不能保证他们能到达目的.广播和多播是基于UDP协议的两种消息发送机制.广播数据即从一个工作站发出,局域网内的其他所有工作站都能收到它.IP协议下,多播是广播的一种变形,IP多播要求将对收发数据感兴趣的所有主机加入到一个特定的组.

目前基于UDP协议的信息传送程序给我们的生活带来的很大的方便,对于企业来说提高企业的办事效率,提高企业的综合素质,是一个企业不断进步迈向一个新台阶的重要步骤。外了适应企业的快速发展,提高企业的管理水平,方便企业与内部员工的信息交流,节省办公开销,企业很需要这样一个程序。

1.2 软件所要实现各功能和最终目标

能够实现一对一,一对多的消息发送机制,同时也能满足对特定一个组内的成员进行消息的发送。充分利用网络实现消息的传送,提高企业的办事效率。

2 软件开发的可行性研究

2.1,技术方面的可行性

本软件通过QT技术基于UDP协议实现广播(Broadcast),单播(Unicast),组播(Multicast)能够通过这些技术完成整个程序所要求的所有的功能。2.2, 济方面的可行性

目前基于UDP和QT的技术的软件已经很多,但本软件通过个别细节的实现能够是软件在未来的市场上有发展前景。

2.3,开发方案的选择性和开发进程的研究

2.3.1,开发方案的选择

默认开始是以广播方式发送消息,用户可根据不同的选项选择消息发送类别,以模块化方式组织程序各个模块这件没有联系,在需要时可手动加入新的模块。遵循高内聚,低耦合的原则对程序进行设计。

2.3.2,开发进程的研究

开始组织整个程序的基本框架包括广播,组播和单播模块,然后具体实现各个模块的细节问题,在实现过程中同时对模块经行测试,以保证在整体测试中能够近少减少错误。

3 系统总体的描述

3.1, 系统基本简介和概要

UDP协议,即拥护数据报协议(Use Datagram Protocol).是一个简单的面向数据报的传输层协议.他不提供可靠性,即只把应用程序传给IP层的数据发送出去,但是并不能保证他们能到达目的.广播和多播是基于UDP协议的两种消息发送机制.广播数据即从一个工作站发出,局域网内的其他所有工作站都能收到它.IP协议下,多播是广播的一种变形,IP多播要求将对收发数据感兴趣的所有主机加入到一个特定的组.

Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

通过QT和UDP实现整个软件的功能,包括:广播,组播,单播

3.2,系统能够完成的功能概要

对广播,组播和单播的简单的实现,能通过程序发送不同类别的广播消息。

3.3,整个软件的特点

3.3.1,广播方面的特点

广播是向子网中所有的计算机发送消息,没有目的性,这样就会增加了网络传播负担,而且消耗资源较高

3.3.2,单播方面的特点

在客户端与服务器端建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送到特定的客户端,

3.3.3,组播方面的特点

组播:也叫多路广播,是消息从一台计算机发送到制定的子网中,同时计算机也可以加入制定的组播中来接受消息,这减少了网络的传播负担,同时计算机也可以随时离开组播,不再接受消息。ip组播使用特殊的ip地址范围来表示不同的组播,组播的地址范围是:224.0.0.0到239.255.255.255的d类ip地址。组播有临时的,也有永久的,但大多数是临时的,只有在用户用到是才创建。使用组播是要注意ttl值,ttl值是允许路由器转发的最大路由器数目,默认是1,为只在本网段内转发消息。

3.3.4,系统的创新点

3.4,设计的目的

实现通过广播,组播和单播发送消息。

4 总体设计和功能实现4.1,功能模块的设计和功能

4.1.1,功能模块图

UDP服务器端模块

UDP客户端模块UDP服务器端

单播模块广播模块多播模

单播消息发送模块

广

块UDP客户端

单播模块广播模块多播模

单播消息接受模块

广

块推

4.1.2,广播模块

在此模块包括,端口号设置,在服务器端设置一个没有用到的端口

号,一般是大于4096

4.1.3,单播模块

此模块包括端口号设置

4.1.4,组播模块

此模块包括端口号设置和

组播地址设置

4.2,系统的流程

广播模块发送

发送和退出模块 端口号设置模块

广播模块接收

接受和退出模块

端口号设置模块

单播模块发送

发送和退出模块 端口号设置模块

单播模块接收

接受和退出模块

端口号设置模块

组播模块发送

发送和退出模块 端口号设置模块

组播模块接收

接受和退出模块

端口号设置模块

组播地址设置模块

加入组播设置模块

这个服务器端的系统流程图

是 否

4.2.1,广播消息接收和发送流程图

广播消息流程图如图11.3所示.程序首先创建UDP 套接字,如果创建成功则设置广播地址;由于进行的是广播机制,所以要将套接字时针为广播类型,即SO-BROADCAST;如果套接字选想不开设置成功则可以避免向指定的广播地址广播消息了.广播结束后(即达到最多的消息条数),关闭套接字,释放占用资源.

开始 创建UDP 套

开始 初始化全局变获取参数设置发送多播

初始化发送广播成功? 广播? 发送

发送 开始

成功? 发送单播

发送

否 是

}

5 软件测试

5.1,测试的环境和目的

在linux 平台下,编译器为gcc ,通过QT 技术,测试程序是否成功。

5.2,测试的模块

5.2.1,广播模块的测试

设置广播地 输出成功 输出错误创建成

设置成发送成还可以

设置套

接字

发送消息 关闭套接字 结束

这是广播服务器端的测试,设置端口号是8080,也是软件启动后的开始的默认选项,即广播地址是“INADDR-BROADCAST

“,

这是客户端的接受测试图片:端口号是值为8080,当服务器端的端口号与客户端的端口号不同时,客户端接收不到服务器端发来

的消息。

5.2.2,单播模块的测试:这是单播地址为172.1

6.0.10,同时设置发送端口号为8080,测试unicast测试成功。

客户端测试图片:端口号和服务器端一样,这样才接收到服务器

端发送来的消息,B/C端端口号不一样不能进行消息的发送。

5.2.3,组播模块的测试:

服务器端的设置组播地址设置为233.1.1.1,端口号设置为8080

客户端的测试图片:开始把这台主机的ip地址加入到组播中(233.1.1.1),同时设置端口号8080,按钮Leave选项是使主机脱离

组播。服务器端发送来的消息,客户端不能再次接收到。

5.4,整体软件的测试

在主窗体中测试能否打开,下一级床底,测试如图所示:这是对编辑项中Broadcast测试的选项

下图是对编辑选项中Unicast的测试结果:

5.5,测试的结论

能够基本实现所要求的各个功能,但在实现工程中也存在一些问题,例如不能受到广播消息,传输超时等问题存在.

6 总结

毕业设计是将我们四年里学到的专业知识付诸于实践,从而提升自己的实践能力。

通过这次实践,我对UDP网络协议有了更好的理,了解了广播,单播和组播区别和在企业中的应用,信息在网络中是怎样传输的。同时对QT技术有了更层次的理解和应用。总之通过这次实践,我基本熟悉了具体的设计步骤,锻炼了工程设计实践能力,培养了自己独立设计的能力。此次设计是我专业知识和专业基础知识一次实际检验和巩固。。

项目中遇到的很多问题是设计之初没有预想到的,保质保量的完成项目任务就是每一个人的责任,通过这次项目的实施,我也感觉到了技术上的不足,时间的分配也存在一些问题,这都是我自身有待提高的方面。

致谢

回想昨天我们还是一个初入校门的学生,一转瞬大学生涯即将结束,回首走过的岁月,心中感慨万千。从懵懂无知到如今成熟自信,我很庆幸我能够来到这所大学,她教会了我怎样做人,怎样做事。当我开始结束这篇论文时,想起刚来杰普培训时,到如今这几个月来的能力和付出,我为自己感到骄傲,因为没退缩,没放弃,为了自己的理想,自己的未来而奋斗!

在规划和设计中遇到了这样和那样的问题,但通过自己和杰普老师的帮助,这些问题也待到了解决。同时由于对我来说QT是一门新的技术,还有自己的技术水平有限,程序可能存在很多的buge,敬请各位老师多多指点和更正。

在这里我要感谢卓伟老师,虽然我是在外地实训,可能在整个程序的实现过程中没能待到卓伟老师的指点,但卓伟老师对我个关注一点也没少!很关心我们的论文的进度等问题!

参考文献

【1】UNIX环境高级编程(第二版)史蒂文斯、拉戈、尤晋元、张亚英人民

出版社 (2006-05出版)

【2】UNIX网络编程(1):套接字联网API(第三版)史蒂文斯(W.Richar

Stevens)、芬纳(Bill Fenner)、鲁道夫(Andrew M.Rudoff) 人民邮电出版

社 (2010-07出版)

【3】C++GUI Qt4编程(第2版)布兰切特(Jasmin Blanchette)、萨默菲尔德(Mark Summerfield)、闫锋欣、曾泉人电子工业出版社 (2008-08出版)

【4】C++Primer中文版(第4版)李普曼(Stanley B.Lippman)、等、李师贤、蒋爱军人民邮电出版社 (2008-07出版)

【5】精通Unix Shell脚本编程(第2版)米歇尔(Randal K. Michael)、李德龙清华大学出版社 (2010-03出版

【6】Linux内核API完全参考手册邱铁、周玉、邓莹莹机械工业出版社 (2011-01出版)

【7】UNIX网络编程(卷1):套接字联网API(第3版)史蒂文斯(W.Richard Stevens)、芬纳(Bill Fenner)、鲁道夫(Andrew M.Rudoff) 人民邮电出版社 (2010-07出版)

相关主题
文本预览
相关文档 最新文档