课程设计--基于QT的局域网聊天室
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
题目:基于QT的局域网聊天室
—UI界面和消息发送、接收模块课程名称:嵌入式系统应用开发
院部名称:计算机工程学院
专业:计算机科学与技术
班级:计算机科学与技术(2)班
课程设计书写要求
课程设计报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
课程设计报告书写说明
课程设计报告应包含一下七部分内容:1、摘要 2、目录 3、前言/引言 4、正文 5、结论、6、参考文献 7、附录,每部分的书写要求参见具体条目要求。
填写注意事项
(1)准确说明,层次清晰。
(2)尽量采用专用术语来说明事物。
(3)外文、符号、公式要准确,应使用统一规定的名词和符号。
(4)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
课程设计报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
课程设计题目:
基于QT的局域网聊天室—UI界面和消息发送、接收模块
一、摘要
嵌入式系统是软件和硬件的综合体,嵌入式系统是与应用紧密结合的,具有很强专用性,必须结合实际系统需求进行合理的裁减利用。
嵌入式在电子行业的应用很广泛,学习嵌入式显得非常重要。这次课程设计的主要目的是检验学习qt软件后的效果。通过基础题的代码编写,熟悉C++语言编程技巧。通过完成聊天程序的设计,熟悉嵌入式底层编程。利用QT设计界面,缩短开发时间。
关键字:嵌入式、tcp SOCKET、QT软件
二、目录
一、摘要 (1)
二、目录 (2)
三、前言/引言 (3)
四、正文 (4)
4.1 原理与关键技术 (4)
4.1.1条件与限制 (4)
4.1.2开发环境说明 (4)
4.1.3运行环境说明 (4)
4.1.4设计思路的分析和可行性 (4)
4.1.5信号和槽机制 (4)
4.1.6聊天平台的设计思想 (5)
4.1.7技术路线 (5)
4.2 系统的总体设计 (6)
4.2.1界面设计 (6)
4.2.2服务器端的设计 (7)
4.2.3客户端的设计 (8)
4.3各个模块的具体实现过程 (9)
4.3.1主界面设计主要代码分析 (9)
4.3.2服务器端主要程序代码分析 (11)
4.3.3客户端主要程序代码分析 (12)
五、结论 (14)
六、参考文献 (15)
七、附录 (16)
三、前言/引言
局域网聊天工具,是在局域网内部使用的,用户之间用来交流的一个工具,一般都具有文本聊天和文件传输功能。局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。
随着中小型企事业的不断发展,在企业内部实现局域网通信是必不可少的,随之出现了企业即时通讯,它是一种面向企业终端使用者的网络沟通工具服务,使用者可以通过安装了即时通信的终端机进行两人或多人之间的实时沟通。交流内容包括文字、界面、语音、视频及文件互发等。
四、正文
4.1 原理与关键技术
4.1.1条件与限制
本系统为普通聊天系统,主要是局域网内成员使用,要求界面简洁,操作简单,以处理事物为核心,保证程序的可靠性。本系统处理数据量有限,适用于局域网用户,但性能良好,能满足局域网成员的基本需求。
可以应对各种由于系统产生的错误,比如信息发送失败,不能接收信息等,要求尽可能多的预防此类事件的发生,并准备好应对措施和向用户提供提示信息。
要保证程序有一定的容错性,当用户进行非法操作或系统本身出现错误时要能以合理的方式退出程序。
4.1.2开发环境说明
1. 编程语言:C++
2. 操作系统:windows xp 32位系统
3. 开发平台:QT creator
4.1.3运行环境说明
1.CPU: 酷睿i5
2.内存:2GB
3.硬盘:500G
4.操作系统:windows xp 32位系统
4.1.4设计思路的分析和可行性
本如软件采用服务器和客户端的形式。服务器负责监听客户端和接收客户端发送过来的信息,并在显示在界面上。客户端则向服务端发送信息,在本地呈现的同时,通过网络实时发往服务器。用户在服务器器上也可以看见客户端发送的消息,并获取最新客户端发送的消息。
网络编程技术的成熟和界面设计技术使得客户端与服务端通信的设计成为可能,而且此软件同过设置IP是聊天通信更为方便。
4.1.5信号和槽机制
信号:当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用。
槽:用于接收信号,而且槽只是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且对象并不了解具体的通信机制。
信号与槽的连接:所有从 QObject 或其子类 ( 例如 Qwidget ) 派生的类都能够包含信号和槽。因为信号与槽的连接是通过 QObject 的 connect() 成员函数来实现的。
4.1.6聊天平台的设计思想
本系统采用服务器和客户端的形式。
服务器主要模拟服务器的控制端,来对客户端的各种状态进行监听。可以通过网络向客户端发送信息,并接受客户端传来的信息,供用户参考。
客户端主要通过IP连接服务器。客户端在显示自己状态的同时,通过网络实时将自己的状态发送到服务器端。
4.1.7技术路线
UDP协议:
UDP 是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。
UDP协议的全称是用户数据报协议[1],在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。
UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数