1、LOGO指指导教师导教师:基于基于Qt的局域的局域网网聊天工具聊天工具n班班级级:n学学生:生:n学号学号:LOGO论文的主要工作包括:论文的主要工作包括:u1局域网聊天工具概述局域网聊天工具概述u2总体设计总体设计u3系统实现系统实现u4系统测试系统测试u5.成果展示成果展示n 近年来,Linux系统凭借着unix系列系统所共有的快捷性,强大的功能性,以及其独有的软件更新机制,和在当今环境下无与伦比的安全性已经逐渐步入了人们的视野,逐步作为与windows并驾齐驱的造作系统为人们的生活服务,硬件技术的不断发展,使得它的软件系统也拥有更多的可使用资源,软件的规模得以飞速的扩大,让在此对计算机的
2、利用率更高.nLinux系统不需要资金的投入就可以正常的使用,不用像微软支付高额的版权费购买.因此,好多企业公司都选择了Linux 系统作为其日常办公,工作交流的操作系统。n人们工作中需要交流和传输资料,然而,Linux局域网聊天工具在市面上又是很少数的存在,这使得在此这些Linux系统使用者在选择局域网聊天工具的时候没有什么真实的选择权。n本人选题于开源的Linux局域网聊天工具,就是为了在熟练自己编程技术,深化自己对Linux系统的理解过程中,制造出一款可以真正贴合于用户需求的局域网聊天工具,同时方便政府机构、学校、企业等,部门内部的交流,提高内部信息安全性。这个程序在做完以后,将会无偿以
3、源码形式提供在git交流社区,方便Linux学习者对其进行共同开发以及后续完善。也算是将Linux推向大众生活的尽了一份力。所以不论于个人,还是于Linux的社区,这个课题的研究都是非常有意义的。第一章:系统的背景及意义第一章:系统的背景及意义第一章:国内外局域网聊天工具研究情况第一章:国内外局域网聊天工具研究情况u目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。本人取最具代表性的QQ和MSN进行了一些研究,作为我开发聊天系统的准备。u腾讯无疑是国内即时通讯市场的霸主,自
4、从99年进入即时通讯领域并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。腾讯的成功与其对QQ的不断创新和完善是分不开的。u参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。其模型如图1-1第一章:国内外局域网聊天工具研究情况第一章:国内外局域网聊天工具研究情况u与腾讯QQ不同,微软的MSN Messenger只使用了TCP作为传输层通信协议,所有客户端与服务器进
5、行连接,然后通过与服务器的TCP连接进行中转通信。其模型如图1-2u腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服务器的处理压力,但其内部协议和实现复杂度都较高。而MSN Messenger所有数据都要经过服务器,服务器压力可想而知(难怪平时很少见到使用MSN进行语音视频聊天的)。u综合腾讯QQ和微软MSN Messenger的特点,我打算在我的系统中尝试建立服务器-客户端一体的模型,即P2P的聊天工具。第二章:总体设计第二章:总体设计系统的整体架构图系统的整体架构图 该该局域网聊天工具程序既要作为服务器端,又要作为客户端,可以将它看为P2P(端到端)。其中消息传递使用U
6、DP来实现,文件传输使用TCP来实现。第二章:总体设计第二章:总体设计用户操作系统图用户操作系统图如果要进行聊天,首先要获取所有登录用户的信息,这是通过在每一个用户运行该程序时发送UDP广播实现的。同时告知所有在线用户。用户离开时,也会使用UDP广播,来使系统获取到所有离开用户的信息。并告知所有在线用户。发送消息时,使用UDP广播,来告知所有在线用户。在发送文件前发送其文件名,使用UDP广播来告知指定的在线用户。如果接受文件,则在接收端创建TCP客户端,然后使用TCP进行文件传输。用户拒绝接收传送来的文件信息时,使用UDP广播来告知发送端的用户,同时关闭文件的传输。保存聊天记录时,先判断mes
7、sageBrowser中的信息是否为空,不为空且格式为text,则使用输出流将messageBrowser中的信息以TEXT形式导出到指定的路径下。删除聊天记录时,使用clear()函数。第二章:总体设计第二章:总体设计聊天界面活动图聊天界面活动图使用UDP广播来处理用户的登录和离开、发送消息等信息。当用户点击加粗时,使用setFontWeight()函数来实现字体的粗细变换。当用户点击下划线时,使用setFontUnderline()函数来实现字体加下划线。当用户点击颜色时,调用QColorDialog(颜色对话框),选取颜色后,使用setTextColor()函数来实现字体颜色的变换。第三
8、章:系统实现第三章:系统实现u 界面设计界面设计第三章:系统实现第三章:系统实现u实现聊天功能实现聊天功能信息类型、用户名、主机名是否为空为空警告加入本机IP、文本消息是否要发送的数据发送数据开始结束第三章:系统实现第三章:系统实现u实现文件传输功能实现文件传输功能服务器设置为监听状态是否接收使用UDP发送信号给接收端关闭服务器开始开始结束结束创建客户端发送端接收端统计传输用时是否传输完毕第四章:系统测试第四章:系统测试第四章:系统测试第四章:系统测试第五章:成果展示第五章:成果展示聊天聊天第五章:成果展示第五章:成果展示文件传输(接受文件)文件传输(接受文件)第五章:成果展示第五章:成果展示
9、文件传输(拒绝文件)文件传输(拒绝文件)第五章:成果展示第五章:成果展示保存聊天记录保存聊天记录全文总结全文总结u本次设计的主要用户对象倾向于政府机构、学校、企业等,部门内部的信息交流。由于本软件只需要局域网即可使用,管理员可将合法用户的计算机MAC地址授权使用本软件搭载的局域网,且由于P2P技术无需额外服务端的便利性,使得交流信息不会泄露给第三方,极大的提高了信息的安全性。u随着网络技术和通讯技术的发展,局域网聊天工具必然还会大规模的流行下去,将会是人们生活中不可或缺的交流软件。Linux系统也因其的简单的高效,也一定会更快的走入大众的眼中,所以Linux的局域网聊天工具必然是一个很有发展前
10、途的项目。u本文设计实现了基于UDP以及TCP的局域网聊天工具的设计,主要成果为以下几点:1 利用模块化的思想,总结完成了本文的设计方案。将Linux的局域网聊天工具的设计流程详细的进行了解释。2 详细的论述了为什么Linux下的局域网聊天工具有很优良的前景和发展前途。3 熟练了自己编码能力,作为名本科生,有足够的详细项目的实际经验还是很重要的。本次的毕业设计设计成功的实现了这个目的,让我获得了很大的提升。u我在设计(论文)期间都是在我在设计(论文)期间都是在xxx全面、全面、具体指导下完成进行的。具体指导下完成进行的。xxx渊博的学识、渊博的学识、敏锐的思维、民主而严谨的作风使我受益非敏锐的思维、民主而严谨的作风使我受益非浅,并终生难忘。浅,并终生难忘。u感谢感谢xxx等在毕业设计工作中给予的帮助等在毕业设计工作中给予的帮助。u感谢我的学友和朋友对我的关心和帮助。感谢我的学友和朋友对我的关心和帮助。致谢致谢
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。