欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    嵌入综合课程设计.docx

    • 资源ID:2203034       资源大小:523.58KB        全文页数:32页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入综合课程设计.docx

    1、嵌入综合课程设计课程设计报告课程名称 嵌入式综合课程设计 专 业: 计算机科学与技术 班 级: 120601 姓 名: 何 燕 学 号: 指导教师: 赵世峰 成 绩: 2015 年 12 月 7 日目录第一章 前言 .(1) 一、引言 .(1) 1.1开发意义 .(1) 1.2开发环境与运行环境 . (1)第二章 系统需求分析.(1) 一、聊天程序的基本原理.(1) 1.1条件与限制 .(1)1.2设计思路和可行性分析.(2)1.3聊天平台的设计思想.(2)1.4信号与槽机制 .(2) 二、关键技术.(2)2.1相关协议 .(2) 2.1.1 UDP协议 .(2) 2.1.2 TCP协议 .(

    2、3) 2.1.3 TCP协议建立连接 .(3) 2.1.4 TCP协议断开连接 .(4)2.2 TCP与UDP区别 .(5)第三章 总体设计.(5) 一、开发环境的配置.(5) 1.1 Windows 下 Qt Creator 5.3.0 环境构建 .(5) 二、基于TCP的程序编写流程图 .(7) 三、界面设计.(8) 3.1服务器设计.(8) 3.1客户端设计.(9)第四章 详细设计.(9) 一、各个模块的具体实现过程.(9) 1.1主界面设计.(9) 1.1.1服务器端设计.(9) 1.1.2客户端端设计.(11) 2.1功能设计.(14) 2.1.1服务器端设计.(14) 2.1.2客

    3、户端端设计.(17) 二、设计结果.(20)第五章 设计总结.(22) 一、心得体会.,.(22)题目:基于Qt简单局域网聊天室第一章 前 言1、引言1.1开发意义 随着网络信息时代的来临,Internet应用越来越广泛,人们越来越习惯于在网上获取和交流信息。网络聊天的诞生,成为时下极为流行的一种沟通方式,特别是在现代高新技术推动下,在线聊天呈现出良好的势头和前景。据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天,使用网上聊天已经成为现代年轻人一种新的交往方式。聊天室更适合于陌生人之间进行较为主观、感性化的讨论,还可以用各种表情表达你的喜怒哀乐。所以大部分人进

    4、入聊天室,它会给人一个完全自由的聊天世界。而随着软件开发在中国的快速崛起,使得越来越多的年轻有志向为软件事业奉献的人加入到软件开发的大家庭,而当前QT采用C+语言作为开发语言拥有着广泛的开发基础,QT使用C+开发,其运行效率可以得到保证,QT已经在Windows、Linux和Embbeded Linux上成功的推广,QT开始在S60和WinCE平台上开始支持,并向开发者提供相关SDK和样例。QT是一个开源项目,即使在企业级开发上也不用承受太大的成本。QT为广大开发者提供了免费而又友好的集成开发环境。QT平台开发起来简单,属于开源项目,开发者学习方便。QT拥有友好丰富的界面库。基于以上这些优点,

    5、用QT实现一个局域网下的简易聊天室,具有很重要的研究学习价值。1.2开发环境与运行环境 1.2.1开发环境说明 (1)编程语言:C+ (2)操作系统:Windows 7 64位 (3)开发平台:Qt Creator 1.2.2运行环境说明 (1)CPU:CORE i5 (2)内存:4GB(3)硬盘:500GB (4)操作系统:Windows 7 64位 第2章 系统需求分析1、聊天程序的基本原理1.1条件与限制 本系统主要为普通聊天系统,主要是局域网内成员使用,要求界面简洁,操作简单,以处理事务为核心,保证程序的可靠性。本系统处理数据量有限,适用于局域网用户,但性能良好,能满足局域网成员的基本

    6、要求。可以应对各种由于系统产生的错误,比如信息发送失败,不能接收信息等,要求尽可能多的预防此类事件的发生,并准备好应对措施和向用户提供提示信息。 要保证程序有一定的容错性,当用户进行非法操作或系统本身出现错误时要能合理的方式退出程序。1.2设计思路和可行性分析本软件采用服务器和客户端的形式,服务器负责监听客户端和接收客户端发送过来的消息,并显示在界面上。客户端则向服务器发送信息,在本地呈现的同时,通过网络实时发往服务器。用户在服务器上也可以看见客户端发送的消息,并获取最新客户端发送的消息。网络编程技术的成熟和界面设计技术使得客户端与服务端通信的设计成为可能,而且此软件通过设置IP使聊天通信更为

    7、方便。1.3聊天平台的设计思想 本系统采用服务器和客户端的形式。服务器主要模拟服务器的控制端,来对客户端的各种状态进行监听。可以通过网络向客户端发送信息,并接收客户端传来的信息,提供用户参考。客户端主要通过IP链接服务器,客户端在显示自己状态的同时,通过网络实时将自己的状态发送给服务器端。1.4信号与槽机制 信号:当对象改变其状态时,信号就由该对象发射(emit)出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用。 槽:用于接收信号,而且槽只是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接,而且对象

    8、并不了解具体的通信机制。 信号与槽的连接:所有从QObject或其子类(Qwidget)派生的类都能够包含信号与槽。因为信号与槽的连接是通过QObject的connect()成员函数实现的。2、关键技术 2.1相关协议 2.1.1 UDP协议 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP协议全称是用户数据报协议,在网

    9、络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层

    10、。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。2.1.2 TCP协议TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet proto

    11、col suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理

    12、的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。2.1.3 TCP的建立过程(三次握手)所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 具体过程为:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SY

    13、N(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据。在socket编程中,这一过程由客户端执行connect来触发,整个流程如图21所示: 图 21 TCP协议三次握手过程2.1.4TC断开连接的过程(四次挥手)由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FI

    14、N来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。具体过程:(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。 (3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Serv

    15、er进入LAST_ACK状态。 (4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。 之所以建立连接三次握手和断开连接四次握手,是因为服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当接收到对方的FIN报文时,仅仅表示对方不在发送数据了但是还能接收数据,己方也未必全部数据都发送给了对方,所以己方可以立即关闭,也可以发送一些数据给对方后,在发送FIN报文给对方来表示同意现在的关闭连接,因此己

    16、方ACK和FIN一般都会分开发送。TCP断开连接整个流程如图22所示: 图22 TCP断开的四次挥手过程2.2 TCP与UDP的区别TCP-传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP-用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制

    17、,故而传输速度很快。第3章 总体设计1、开发环境的配置 1.1 Windows 下 Qt Creator 5.3.0 环境构建图 31 安装Qt Creator后菜单栏图 32 Qt Creator工具选项图 33 Qt Creator构建和运行中Qt Versions图 34 Qt Creator构建和运行中编译器图 35 Qt Creator构建和运行中编译器添加结果2、基于TCP程序的编写流程图服务器主要模拟服务器的控制端,来对客户端的各种状态进行监听。可以通过网络向客户端发送信息,并接收客户端传来的信息,提供用户参考。客户端主要通过IP链接服务器,客户端在显示自己状态的同时,通过网络实

    18、时将自己的状态发送给服务器端。 图 36 程序流程图3、界面设计3.1服务端的设计 图 37 服务器端界面服务器主要模拟服务器的控制端,来对客户端的各种状态进行监听。可以通过网络向客户端发送信息,并接收客户端传来的信息,提供用户参考。在点击“创建聊天室”控件时,使得服务器被打开,在服务器端的程序中指定了端口号,客户端程序的端口号和服务器端的端口号一样,这样就便于客户端和服务器相互连通。3.2客户端的设计 图 38 客户端端界面客户端主要通过IP链接服务器,客户端在显示自己状态的同时,通过网络实时将自己的状态发送给服务器端。客户端在完成用户名和IP地址后,点击进入聊天室后,便可以发送自己愿意发送

    19、的信息同时可以接受别的在线用户的信息。第4章 详细设计1、各个模块的具体实现过程1.1主界面设计 1.1.1服务器端设计 在工程TcpServer中,我们需要包含6个文件,分别为tcpserver.h和tcpserver.cpp、tcpclientsocket.h和tcpclientsocket.cpp以及server.h和server.cpp。每个文件都实现不同的功能。(1)头文件“tcpserver.h”中声明了所需要的各种控件,TcpServer继承自QDialog,实现了服务器端的对话框显示与控制。具体代码如下:#ifndef TCPSERVER_H#define TCPSERVER_

    20、H#include #include #include #include #include #include #include server.hclass TcpServer : public QDialog Q_OBJECT public: TcpServer(QWidget *parent = 0,Qt:WindowFlags f=0); TcpServer(); private: QListWidget *ContentListWidget; QLabel *PortLabel; QLineEdit *PortLineEdit; QPushButton *CreateBtn; QGrid

    21、Layout *mainLayout; int port; Server *server;public slots: void slotCreateServer(); void updateServer(QString,int);#endif / TCPSERVER_H(2)在源文件“tcpserver.cpp”中,TcpServer类的构造函数主要实现窗体各个控件的创建、布局等,具体实现代码如下:#include tcpserver.hTcpServer:TcpServer(QWidget *parent,Qt:WindowFlags f) : QDialog(parent,f) setWindowTitle(tr(TCP Server); ContentListWidget = new QListWidget; PortLabel = new QLabel(tr(端口号:); PortLineEdit = new QLineEdit; CreateBtn = new QPushButton(tr(创建聊天室); mainLayout = new QGridLayout(this);


    注意事项

    本文(嵌入综合课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开