欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于QT的局域网聊天软件开发毕业论文.doc

    • 资源ID:2392725       资源大小:39.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    基于QT的局域网聊天软件开发毕业论文.doc

    吉林大学珠海学院毕业论文(设计)基于QT的局域网聊天软件开发QT-based LAN chat software development完成日期 2013 年4月19日吉林大学珠海学院本科毕业论文开题报告基于QT的局域网聊天软件开发摘要本文主要介绍了如何用QT技术来实现一个局域网的聊天软件。论文阐述了QT的概念,发展历史,功能及其应用平台,以及QT的发展前景;讲述了socket通信的工作原理及其应用方面;分别叙述了TCP/IP通信和UDP通信的工作流程和应用方面。本文还介绍了软件的需求分析,界面设计,及其测试用例,并且比较详细的描述了整个软件的实现过程。本软件主要是应用于局域网的聊天及文件传输,采用最基础的C+语言,用QT界面开发工具来开发,使用了TCP/IP和UDP通信协议进行通信。该软件应用QT进行界面开发,能够开发出优美的界面;用TCP/IP通信实现文件的传送,用UDP通信实现聊天信息之间的传输。关键词:QT,TCP/IP 通信,UDP 通信,界面开发QT-based LAN chat software developmentABSTRACTThis paper describes how to use QT technology to achieve a software of chat base on LAN.This paper describes the conception of QT,and the history of QT,and the function of QT,and the Application Platform of QT,and the development prospects of QT.This paper also describes how to work of socket communication and the ways about it be used.It introduce the workflow and the ways about it be used that about TCP/IP communication and UDP communication,the design of interface,and the test case about the software.It also describes the realization process about software in detail.This software is used to chat on LAN and send files.It use C+ language and QT develop software to develop this software.The software use TCP/IP communication and UDP communication to communicate.The interface of the software is developed by use QT develop software.The QT develop software can create beautiful interface.The software use TCP/IP deal to send files,and use UDP deal to chat with others.Keywords: QT,TCP/IP communication,UDP communication,Interface目录摘要 IABSTRACTII绪论1第1章 QT21.1 QT软件21.3 QT的主要功能3第2章通信协议分析42.1 TCP/IP简介42.2 TCP/IP协议应用方面42.2.1 TCP协议52.2.2 UDP协议52.3 客户机/服务器模式6第3章任务需求分析73.1 任务设计目的73.2 运行环境要求73.3 通信协议需求分析73.4 功能设计分析83.4.1 公共端口设立83.4.2 私有端口设立93.4.3 功能模块图93.4.4 主要功能描述10第4章界面设计114.1 登陆界面的设计114.2 聊天界面的设计134.2.1 获取端口信息134.2.2 发送信息界面144.2.3 接收信息界面164.2.4 改变编辑字体界面174.3 文件传送界面的设计18第5章软件测试205.1 用户登陆模式测试215.2 即时聊天测试215.3 字体应用测试225.4 传输数据文件测试235.5 多系统平台聊天测试23结论24参考文献25致谢25绪论随着科技的发展, 人们的生活节奏越来越快,对网络通信需求不断增大。在生活压力越来越大,精神也越来越紧张的生活压迫下,人们经常会出现不同的问题。在这时,人们往往会想到与人交流,通过与陌生人沟通来缓解自己的压力,来发泄心中的不快。因此,聊天时一种和好的方式,来使自己在忙碌之中得到放松。网络聊天工具的出现拉近了人与人的关系,为其提供更便捷的沟通方式,打破了人与人交流的区域限制,拓宽了人与人的沟通渠道,另外人还能通过网络聊天工具进行聊天转移注意力,舒缓其在生活压迫下的紧张情绪,使自己的精神得到放松。聊天还能医治抑郁,提升自己的语言表达。在聊天中同学善意的批评,老师精心的指点,或者得到一些热心人士的解答,都能使我们在聊天中得到放松,得到解决问题的办法。聊天对人是有许多益处,但是很多人却会因为网络出现问题了,导致我们不能聊天。就像我们学校,晚上经常断网,这样同学之间聊天,或者传递资料将很不方便。同学们急切需要一种聊天软件,可以使同学们打发空闲的时间,交流感情,共享资源。因此,我设计了一款局域网聊天软件。网络聊天软件在当今的形式。如今各种各样的网络聊天工具到处存在,但是大部分软件都是只能在Windows平台上或者单一的平台上运行,这具有很大的局限性,因此我局域QT这个跨平台开发工具,开发了一个聊天软件。这个聊天软件能够实现局域网内的通信和文件传输,这十分方便同学们的需求。软件设计和研究的方法。由于TCP/IP通信和UDP通信用不同的软件实现的原理都类似,因此,通信方面可以参考的内容十分丰富。聊天界面的设计主要参考QQ聊天软件的界面设计。设计过程:1.对聊天软件界面应该十分熟悉,并且设计出一款和谐,美观的聊天界面2.创建登陆设定,针对不同的人建立相应的登陆方式3.建立UDP通信连接,使软件能够实现聊天通信4.建立TCP/IP通信连接,使软件能够实现文件传输5.优化界面,添加聊天的其他设置第1章 QT1.1 QT软件Qt 是一个跨平台的C+图形用户界面应用程序框架,它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能,Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。1自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础,Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。1Qt所支持的平台有:MS/Windows - 95、98、NT 4.0、ME、2000、XP 和 VistaUnix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台Macintosh - Mac OS XEmbedded - 有帧缓冲(framebuffer)支持的Linux平台,Windows CE。1Qt是诺基亚公司的一个产品。1Qt被按不同的版本发行:Q商业版提供给商业软件开发。它们提供传统商业软件发行版并且提供免费升级和技术支持服务。如果要获得最新信息,请浏览诺基亚公司Qt Software网站页面,或者与sales联系。商业版多一些扩展模块。1Qt开源版是Qt仅仅为了开发自由和开放源码软件提供的Unix/X11版本。在Q公共许可证和GNU通用公共许可证下,它是免费的。最新的版本可以在这里下载。从计划于2009年3月发布的Qt 4.5 起,诺基亚将为Qt增添新的开源LGPL授权选择。1Qt/嵌入式开源版是Qt为了开发自由软件提供的嵌入式版本。在GNU通用公共许可证下,它是免费的。11.2 QT的主要功能QT的主要功能是进行界面开发,QT开发的界面十分美观、和谐,让人容易接受。QT开发的软件具有一次开发,重复使用的特点。它开发的软件,能够移植到多种平台上运行。它的开发环境是Qt Creator.7Qt Creator 是专为满足 Qt 开发人员需求而量身定制的跨平台集成开发环境 (IDE)。Qt Creator 可在 Windows、Linux/X11 和 Mac OS X 桌面操作系统上运行,供开发人员针对多个桌面和移动设备平台创建应用程序.Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作.第2章通信协议分析2.1 TCP/IP简介TCP/IP 是作为 Internet的核心协议,通过近二十多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准,TCP/IP 协议集确立了 Internet 的技术基础。3TCP/IP 协议主要用于 OSI 网络参考模型中的网络层(第3层)、传输层(第4层)和应用层(第7层)。数据链路层(第2层)的功能主要应用于其它协议如以太网(Ethernet)、ATM、帧中继(Frame Relay),以及多数供应商特定协议等。TCP/IP 充分支持所有通用第2层协议。TCP/IP 组中的应用程序通常直接运行于传输层协议 TCP 或 UDP 上面,并不需要表示层(第6层)和会话层(第5层)的支持。3TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。2.2 TCP/IP协议应用方面2.2.1 TCP协议TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收资料以及终止连接。 传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。网际协议IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎真实存在的,但实际上它是一种并不存在的虚拟网络,只不过是利用IP协议把全世界上所有愿意接入 Internet 的计算机局域网络连接起来,使得它们彼此之间都能够通信。它的工作流程图如下:图2.1 TIP工作原理图2.2.2 UDP协议UDP 是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。例如,在屏幕上报告股票市场、在屏幕上显示航空信息等等。它的工作流程图如下:图2.2 UDP工作原理图2.3 客户机/服务器模式在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式:1、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。2、等待客户请求到达该端口。3、接收到重复服务请求,处理该请求并发送应答信号。4、返回第二步,等待另一客户请求5、关闭服务器。客户方:1、打开一通信通道,并连接到服务器所在主机的特定端口。2、向服务器发送服务请求报文,等待并接收应答;继续提出请求3、请求结束后关闭通信通道并终止。第3章任务需求分析3.1 任务设计目的1. 局域网聊天软件应该具备不同的登录端口,即私有和公共端口2. 局域网聊天软件应该能够搜索到当前用户,并显示用户信息3. 局域网聊天软件应该具备基础的聊天功能4. 局域网聊天软件应该具备优美,简单的大众化操作界面5. 局域网聊天软件能够供用户设置自己要发送的文字字体6. 局域网聊天软件还要能够传送文件3.2 运行环境要求由于针对不同的同学,不同人喜欢用不同的操作系统,满足不同人的需求,因此所开发的软件应该具备大众化,能够适应多种操作系统,因此我选择了QT进行开发,一次开发,可以移植到不同的操作系统中应用,但测试是在windows xp下进行测试。3.3 通信协议需求分析在局域网聊天软件中由于涉及到聊天信息的传输和文件的传送,因此在通信协议上我选择TCP/IP协议和UDP协议都是用。用具有可靠性的TCP/IP协议来传输数据文件,用不具可靠性的UDP协议传送即时聊天信息。3.4 功能设计分析3.4.1 公共端口设立针对不同的人有不同的爱好,聊天工具的使用也是一样。有的用户喜欢在公共端口和不同的人聊天,结交认识不同的人,因此局域网聊天软件应该设置一个公共聊天端口,用于提供个喜欢在公共端口下进行聊天和交流信息的用户使用。当用户选择用软件设定的公共端口登陆时,用户需要输入公共端口的端口号作为用户名,输入特定的登录密码,才能进入聊天界面。进入聊天界面之后,用户可以绑定端口号,此时聊天工具将自动搜索到该端口下已经登录的其他用户,并获取用户的信息,此时用户之间就可以相互进行聊天交流和传输数据文件。3.4.2 私有端口设立私有端口的设立是为了方便用户与自己生活圈内的朋友的聊天交流需求设立的,如有的同学喜欢在自己端口和熟悉的人聊天,因此可以选择用自己设定的端口登陆,并将自己的端口告诉相应的同学,如果该同学也选择这个端口登陆的话,那他们就可以相互聊天和传输数据文件了。当用户选择用软件设定的私有端口登陆时,用户需要输入自己设定的私有端口的端口号作为用户名,输入任意登录密码,就能进入聊天界面。进入聊天界面之后,用户可以绑定端口号,此时聊天工具将自动搜索到该端口下已经登录的用户,并获取用户的信息,此时就可以进行聊天了。3.4.3 功能模块图登陆界面私有端口登陆公共端口登陆聊天界面创建端口发送文件保存信息清空信息发送信息改变文字 .图3.1 登陆界面功能模块图3.4.4 主要功能概述1. 登陆功能进入登陆界面,为用户提供两种选择用公共端口登陆还是用私有端口登陆,选择之后,用户才能进行登陆操作,从公共端口登陆需要用公共端口的端口号作为用户名,用“123456”作为登陆密码。从私有端口登陆,用户可以自己定义端口号和登陆密码。点击“登陆”按钮后,用户即可进入聊天界面。2. 界面功能进入聊天界面之后,用户必须点击创建登陆端口的按钮,用户才能进入聊天平台。在进入聊天平台之后,用户就可以进行聊天了,与局域网中的其他用户进行聊天交流。用户还能够根据自己的喜好设置字体的大小,颜色等,当有需要进行文件数据交流时,用户还可以通过局域网聊天软件发生数据、传送文件等。第4章界面设计4.1 登陆界面的设计1. 设计思路:登录界面主要包括几个部分:第一部分是端口选择部分,用于选择不同的登录方式登录。第二部分是登录名和登录密码输入,用户必须选择登陆方式之后才能够进行登录名和登陆密码的输入。第三部分是确定登陆部分,用户当输入登陆名和登陆密码之后可以选择点击“登陆”按钮进行登陆,或者退出登陆。2.操作方式登录模块主要对用户登录信息的验证,根据选择登陆方式的不同而有不同的操作功能要求。例如公共端口登陆,用户需要知道公共端口的端口号和登陆密码才能进入聊天界面,而在私有登陆时,用户只需自己以自己设定的私有端口号为用户名,密码为任意,就可以进入聊天界面。开始3.流程图如下:选择登陆端口公共私有输入用户名、密码输入用户名、密码Y判断其是否为空Y对信息进行验证进入主界面结束图4.1 登陆界面登陆流程图elseif(ui->usrLineEdit->text().trimmed()=tr("45454")&&ui->pwdLineEdit->text()=tr("123456")accept();#if defined(Q_WS_S60)w.showMaximized();#elsew.show();#endifelseQMessageBox:warning(this,tr("Warning"),tr("The user name or password error!"),QMessageBox:Yes);ui->usrLineEdit->clear();ui->pwdLineEdit->clear();ui->usrLineEdit->setFocus();4.2 聊天界面的设计4.2.1 获取端口信息1.设计思路1. 通过在聊天文件中定义一个公共变量port1,通过“w.port1=port”语句将私有端口号传入聊天函数中。在创建登陆端口时,以该端口创建。而公共端口则是程序已经定义了。2. 获取同一端口号内用户的信息,其中包括用户名,本地主机名,ip地址每次加入一个用户,“在线人数”就会加1,如果存在用户离开,“在线人数”就会减1,并且在收到信息的界面中显示信息“XXXX 离开”。2. 流程图进入界面N搜索同一端口号人数在线人数加1或减1图4.2 端口界面流程图ui->tableWidget->removeRow(rowNum);ui->textBrowser->setTextColor(Qt:gray);ui->textBrowser->setCurrentFont(QFont("Times New Roman",10);ui->textBrowser->append(tr("%1 于 %2 离开!").arg(userName).arg(time);ui->onlineUser->setText(tr("在线人数:%1").arg(ui->tableWidget->rowCount();4.2.2 发送信息界面1. 设计思路这部分包括两个部分:第一部分是聊天信息编辑界面。第二部分是聊天信息发送操作,在这部分中包括两个按钮,一个是“关闭”,另一个是发送按钮。2. 操作流程用户在聊天编辑界面中编辑要发送的信息,当编辑完毕之后,用户可以点击发送按钮发送要发送的信息。用户发送信息的整个过程是通过建立UDP连接来传送需要发送的数据。3. 建立UDP连接流程图监听发送数据显示数据图4.3 发送数据流程图4.代码实现void Widget:sendMessage(MessageType type, QString serverAddress) /发送信息QByteArray data;4.2.3 接收信息界面1. 设计思路这部分只包括信息显示界面。2. 工作流程当软件接受到数据之后,包括用户编辑发送的信息和用户离开时显示的信息。用户接受信息的整个过程是通过建立UDP连接来接受需要收到的数据。3. 流程图建立UDP连接.监听接受数据显示数据图4.4 接受数据流程图4.2.4 改变编辑字体界面1. 设计思路这部分包括四个部分:第一部分是字体选择部分;第二部分是字体大小部分;第三部分是字体状态部分,其中主要包括字体是否是粗体、斜体、下划线、颜色等信息;第四部分是其他操作,如:发送文件,保存信息,清空信息。2. 操作方式通过固定的按钮设置字体的状态,使用户在编辑信息时改变字体。如当用户点击按钮是,按钮显示按下状态,说明已经字体设置成当前状态。4.3 文件传送界面的设计1. 设计思路这部分应该包括两个部分第一部分是文件名和发送进度条的显示第二部分是打开文件和发送文件,以及退出发送文件界面的按钮。2. 操作方式发送文件时,先确定发送对象,然后必须有双方都同意,才能发送成功,否则退出。当用户进入发送界面之后,先点击“打开”按钮,选择要发送文件,然后点击发送,等待对方接受,但对方接受之后,会显示发送进度,否则,发送不成功。点击界面发送文件按钮3.流程图找到要发送的文件点击发送文件N对方同意接受文件文件传送,并显示进度退出图4.5 发送文件流程图4.代码实现包括几部分代码1.打开文件void TcpServer:on_serverOpenBtn_clicked() /打开fileName = QFileDialog:getOpenFileName(this);第5章软件测试5.1 用户登陆模式测试1. 测试方法由于私有端口登陆名为自己设置,因此可以随便登陆。所以测试公共端口登陆,输入错误的登陆名或密码时,看程序的处理,并查看正常用户登陆能否进行局域网聊天。2. 测试结果界面显示图5.1 错误登陆处理界面5.2 即时聊天测试1. 测试方法正常发送数据时,界面是可以显示的,所以测试发送空数据时,界面是否有处理,主要是针对程序对异常的处理能力。2. 测试结果界面显示1.错误警告图5.2 发送数据错误处理界面2.正常显示图5.3 正常发送数据界面5.3 字体应用测试1. 测试方法点击字体设置按钮,随意改变字体大小和颜色,查看字体是否改变。2. 测试结果界面显示图5.4 字体改变正常界面5.4 传输数据文件测试1. 测试数据文件是否可以传送文件,并查看文件是否传送成功,确认文件的完整性。5.5 多系统平台聊天测试1. 测试方法针对局域网聊天软件分别在不同的系统平台下,如Linux和Windows系统平台下测试聊天软件否能够正常跟局域网内的其他用户进行聊天交流和传输数据文件等。2. 测试界面图5.5 在linux下运行结论本软件实现了在局域网内的聊天通信和文件传输。不仅操作简单,界面优美,而且使用性很强。在开发该软件时,我遇到了三个难题,第一个是以前没有接触过QT,对其并不是太了解;第二个是通信的网络协议不是很熟悉;第三个是界面到底要设计成什么形式。针对这三个问题,我查找许多资料,最终顺利解决。虽然这个软件不能说是十分完美,也还有许多可以修改的地方,随着以后的修改,我发现只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。参考文献1 David J. Kruglinski,Programming Visual C+.1998.2 施炜、李铮、秦颍,Windows Sockets 规范和应用Windows网络编程接口.1996.3Anthony Jones and Jim Ohlumd,TCP/IP详解卷一:协议(英文版).机械工业出版社,2003.4 王罡林立志, 基于Windows的TCP/IP编程.清华大学出版社,2002.5 蒋东兴等,Windows Sockets 网络程序设计大全. 清华大学出版社,1999.6 萨师煊,数据库系统概论.高等教育出版社,2002.7侯捷,深入简出MFC .1998 .8Jeff Prosise,MFC Windows程序设计(第2版)。清华大学出版社,1999.9 郑阿奇.Qt 4开发实践M. 北京:电子工业出版社.2011:49-200,327-357.致谢随着时间的流逝,经过几个月的学习和开发,我的毕业设计也接近了尾声,由于自己的编程经验不够,而且自己找的资料又不是十分充足,所以在毕业设计过程中遇到了许多的困难,经过自己的努力专研和同学的帮助,才把这个软件开发出来。通过这次开发,我成长许多,学到许多东西。我也渐渐学会如何利用自己身边可以利用的资源进行程序开发。在开发中,我对QT有了进一步的了解,这对我以后的工作将有很大的帮助。而且我还对通信协议有更深的了解。

    注意事项

    本文(基于QT的局域网聊天软件开发毕业论文.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开