太 原 理 工 大 学
毕业设计论文任务书
基于QT4的视频聊天工具的设计与实现
摘要
本文主要介绍了如何用QT技术来实现一个局域网的聊天软件。论文阐述了QT的概念发展历史功能及其应用平台以及QT的发展前景讲述了socket通信的工作原理及其应用方面分别叙述了TCP/IP通信和UDP通信的工作流程和应用方面 以及他们之间的区别。本文还介绍了软件的需求分析界面设计及其测试用例并且比较详细的描述了整个软件的实现过程。
本软件主要是应用于局域网的聊天及文件传输采用最基础的C++语言用QT界面开发工具来开发使用了TCP/IP和UDP通信协议进行通信。该软件应用QT进行界面开发能够开发出优美的界面TCP/IP通信实现文件的传送用UDP通信实现聊天信息之间的传输。
关键词 QT TCP/IP通信 UDP通信
The design and implementation of video chat tool based on QT4
AB S TRAC T
This paper describes how to use QT technology to achieve a software ofchat base onLAN.This paper describes the conception of QT,and the history ofQT,and the function ofQT,and the Application Platform ofQT,and the development prospects ofQT.This paper alsodescribes how to work of socket communication and the ways about it be used.It introducethe workflow and the ways about it be used that about TCP/IP communication and UDPcommunication,and the different between them.This paper also introduce the demandanalysis,the design of interface,and the test case about the software.It also describes therealization proces s about so ftware in detail.
This software is used to chat on LAN and send files.It use C++language and QTdevelop so ftware to develop this so ftware.The so ftware use TCP/IP communication and UDPcommunication to communicate.The interface of the software is developed by use QTdevelop so ftware.The QT develop so ftware can create beautiful interface.The so ftware useTCP/IP deal to send files,and use UDP deal to chat with others.
Key words: QT;TCP/IP communication;UDP communication;
目 录
摘要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .i
ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .i i
1 绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1. 1 软件开发的背景和目的. . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1.2 聊天软件在当今的形式. . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1.3 软件设计和研究的方法. . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1.4 设计过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1.5 研究内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2 系统开发技术及开发工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2. 1 QT的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.2 QT的发展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.2. 1 发展历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.2.2 发展前景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.3 QT的主要功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.4 QT的应用平台. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
2.5 OpenCV介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3 需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3. 1 引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3. 1. 1 编写目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.2 任务概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.2. 1 任务目标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.2.2 运行环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.3 协议需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.3. 1 协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.3.2 UDP协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.3.3 协议的区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
3.3.4 功能需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4 概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4. 1 设计目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
4.2 系统功能配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
4.2. 1 硬件环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
4.2.2 软件环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
4.3 系统功能模块说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
4.4 系统功能模块图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
5 详细设计及实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5. 1 聊天界面的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5. 1. 1 获取端口信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5. 1.2 发送信息界面. . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5. 1.3 接收信息界面. . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5. 1.4 改变编辑字体界面. . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.2 文件传送界面的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
5.3 视频界面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6 软件测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6. 1 测试项目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.2 测试方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.3 聊天测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.4 视频聊天测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.5 字体改变测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.6 文件传送测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
6.7 多平台聊天测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
7 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
致谢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
附录一英文原文. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
附录二 中文译文. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。
1 绪论
1 . 1 软件开发的背景和目的
近些年,人们的生活节奏越来越快。人们的生活压力越来越大精神也越来越紧张人们经常会出现不同的问题。在这时人们往往会想到与人交流来缓解自己的压力来发泄心中的不快。因此聊天时一种和好的方式来使自己在忙碌之中得到放松。
网络聊天可以提升打字速度还能转移注意力使自己的精神得到放松。聊天还能医治抑郁提升自己的语言表达。在聊天中同学善意的批评老师精心的指点或者得到一些热心人士的解答都能使我们在聊天中得到放松得到解决问题的办法。聊天对人是有许多益处但是很多人却会因为网络出现问题了导致我们不能聊天。就像我们学校晚上经常断网这样同学之间视频聊天或者传递资料将很不方便。同学们急切需要一种聊天软件可以使同学们打发空闲的时间交流感情共享资源。因此我设计了一款局域网视频聊天软件。
1 .2 聊天软件在当今的形式
如今各种各样的网络聊天工具到处存在但是大部分软件都是只能在Windows平台上或者单一的平台上运行这具有很大的局限性因此我局域QT这个跨平台开发工具开发了一个聊天软件。这个聊天软件能够实现局域网内的通信和文件传输这十分方便同学们的需求。
1 .3 软件设计和研究的方法
由于TCP/IP通信和UDP通信用不同的软件实现的原理都类似 因此通信方面可以参考的内容十分丰富。聊天界面的设计主要参考QQ聊天软件的界面设计。
1 .4 设计过程
1.对聊天软件界面应该十分熟悉并且设计出一款和谐美观的聊天界面
2.创建登陆设定针对不同的人建立相应的登陆方式
3.建立UDP通信连接使软件能够实现聊天通信
4.建立TCP/IP通信连接使软件能够实现文件传输
5.优化界面添加聊天的其他设置
1 .5 研究内容
该软件的研究内容主要在两方面
1.QT开发在界面设计方面是否能够设计出优美的界面比其他开发软件是否更具优势 以及通信方面是否可行。
2.QT开发的软件是否具有可移植性跨平台性是否十分优越于其他开发软件。
2 系统开发技术及开发工具
2. 1 QT的概念
QT在网上有多种解释如Quantity、 Quart、 Quarter等/Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。
2.2 QT的发展
Qt是一个跨平台的C++图形用户界面库由挪威TrollTech公司于1995年底出品。 Trolltech公司在1994年成立但是在1992年成立Trolltech公司的那批程序员就已经开始设计Qt了 Qt的第一个商业版本于1995年推出。
2.2. 1 发展历史
Qt经历了漫长的发展
1996 Oct KDE组织成立。
1998 Apr 05 Trolltech的程序员在5天之内将Netscape5.0从Motif移植到Qt上。
1998 Apr 08 KDE Free Qt基金会成立。
1998 Jul 09 Qt 1.40发布。
1998 Jul 12 KDE 1.0发布。
1999 Mar 04 QPL 1.0发布。
1999 Mar 12 Qt 1.44发布。
1999 Jun 25 Qt 2.0发布。
1999 Sep 13 KDE 1. 1.2发布。
2000 Mar 20嵌入式Qt发布。
2000 Sep 06 Qt 2.2发布。
2000 Oct 05 Qt 2.2. 1发布。
2000 Oct 30 Qt/Embedded开始使用GPL宣言。
2000 Sep 04 Qt free edition开始使用GPL。
自从1996年早些时候 Qt进入商业领域它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE的基础 KDE是所有主要的Linux发行版的一个标准组件。
2.2.2 发展前景
QT是一个跨平台的界面开发软件 因此Qt同X Window上的Motif OpenwinGTK等图形界面库和Windows平台上的MFC OWL VCL ATL是同类型的东西但是Qt具有下列优点
优良的跨平台特性
近日华纳云商家正式上线了美国服务器产品,这次美国机房上线的产品包括美国云服务器、美国独立服务器、美国高防御服务器以及美国高防云服务器等产品,新产品上线华纳云推出了史上优惠力度最高的特价优惠活动,美国云服务器低至3折,1核心1G内存5Mbps带宽低至24元/月,20G ddos高防御服务器低至688元/月,年付周期再送2个月、两年送4个月、三年送6个月,终身续费同价,有需要的朋友可以关注一下。华纳云...
LOCVPS发来了针对元旦新年的促销活动,除了全场VPS主机8折优惠外,针对德国/荷兰KVM #1/美国KVM#2 VPS提供终身7折优惠码(限量50名,先到先得)。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐优先选择KVM),均选择直连或者优化线路,国内延迟低,适合建站或远程办公使...
ZJI是成立于2011年原Wordpress圈知名主机商—维翔主机,2018年9月更名为ZJI,主要提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。本月商家针对香港阿里云线路独立服务器提供月付立减270-400元优惠码,优惠后香港独立服务器(阿里云专线)E3或者E5 CPU,SSD硬盘,最低每月仅480元起。阿里一型CPU:Intel E5-2630L...