兰州商学院毕业论文Linux下的类QQ软件开发.doc
《兰州商学院毕业论文Linux下的类QQ软件开发.doc》由会员分享,可在线阅读,更多相关《兰州商学院毕业论文Linux下的类QQ软件开发.doc(39页珍藏版)》请在咨信网上搜索。
1、兰 州 商 学 院本科生毕业论文(设计)论文(设计)题目: Linux下的类QQ软件开发 学 院、 系: 信息工程学院 计算机科学与技术系 专 业 (方 向): 电子信息工程 年 级、 班: 2007级 学 生 姓 名: 刘回民 指 导 教 师: 彭会萍 2011 年 3 月 6 日2声 明本人郑重声明:所呈交的毕业论文(设计)是本人在导师的指导下取得的成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。本毕业论文(设计)成果归兰州商学院所有。 特此声明毕业论文(设计)作者签名:刘回民 2011 年 5月25日Lin
2、ux下的类QQ软件开发摘 要本文设计了如何使用QT图形开发库和C语言编写一个基于Linux平台运行的聊天软件的过程。最终实现了QQ申请,QQ聊天,文件发送以及离线消息功能。文章主要分为四个部分,第一部分主要分析了该类产品的一个发展过程和开发此类软件的背景及意义。在此基础上,进一步的分析了该类产品的需求情况。在第三章中详细的介绍了所选取的开发环境,通过了解这些知识将会对该类软件的开发流程有一个总体的认识。之后,在通过对预备方案的分析和总结后,最终确定设计路线。程序设计路线这一章节对该软件的各个功能模块和操作处理流程进行了详细的划分和设计,并且运用各种图表清晰的展现了软件的模块信息和总体结构。软件
3、的预期效果在这一章节中得到了体现,完成效果符合前期的需求分析。最后总结了该软件开发的不足之处,还有软件需要完善的部分。 关键词Linux 系统 C/S 结构 TCP/IP 协议 网络编程 图形用户界面 ABSTRACTThis text designed how to use QT graphics tapping library and C language to write a process of chat software that circulates according to the Linux platen.Finally carried out a QQ application
4、, QQ chat, document forward and off-line news function.The article is mainly divided into four fractions, the no 1 fraction mainly analyzes the type of a shape process of product and develops this kind of back ground and meaning of software.On this foundation, further condition for analyzing the dem
5、and of the type of product.In detail introduced in the third chapter select by examinations of tapping environment, passing to understand these knowledge will have total understanding to the type of tapping flow process of software.After, at approval vs preparation scheme of analysis and summary aft
6、er, finally recognize design route.Programming route this chapter handled flow process to carry on a detailed curtate and design vs each function mold mass and operation of the software,and made use of various chart to clearly make a show of the mold mass of software information and total structure.
7、The expectation effect of the software received an embodiment in this chapter and completed the demand analysis that the effect matches previous period.The scarcity that finally tallied up the softwares tapping of section, and the software needs perfect fraction. Keywordthe Linux system C/S structur
8、e TCP/IP negotiate the network plait distance目 录一、引言1(一)课题的背景及意义1(二)网络聊天软件的发展及现状1(三)TCP/IP 协议简介21、TCP 协议简介32、UDP 协议简介4(四)套接字简介5(五)开发平台简介51、Linux 系统简介52、QT图形开发库简介63、 编程语言和编程工具简介7(六)本章小结8二、软件需求分析8(一)软件功能需求9(二)总体性能需求91、服务器端性能需求92、客户端性能需求93、错误处理需求10(三)本章小结10三、设计方案10(一)方案比较101、 采用 TCP 方式连接102、采用 UDP 方式连接
9、11(二)方案选择12(三)总体设计方案131、服务器功能模块划分132、客户端功能模块划分143、消息标识的定义154、消息结构体的设计16四、软件流程18(一)服务器消息处理流程18(二)客户端操作流程19(三)客户端消息发送和接收流程19(四)申请用户流程22五、详细设计22(一)服务器主要函数和变量22(二)服务器消息处理模块的设计与实现231、用户登录消息处理模块:232、添加好友信息处理模块:243、删除好友信息处理模块:244、用户聊天信息转发的处理模块:245、用户下线消息处理模块:246、离线消息处理模块:257、删除离线消息处理模块:25(三)服务器数据存储的方法25(四)
10、客户端主要窗口设计26(五)客户端主要函数和变量28(六)客户端功能模块的设计与实现29(七)本章小结31六、结 论31参考文献32致谢33附录34IVLinux下的类QQ软件开发一、引言 (一)课题的背景及意义 在网络无所不在的今天,在 Internet 上,有 ICQ、MSN、Gtalk、OICQ 等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发送信息,不管对方是否也同时在线,只要知道他有号码。 Linux 操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码
11、的公开化!只要是基于 GNU 公约的软件你都可以任意使用并修改它的源代码。但对很多习惯于 Windows 操作系统的人来说,Linux 的操作不够人性化、交互界面不够美观,这给 Linux 操作系统的普及带来了很大的阻碍。因此制作一个 Linux 操作系统下的拥有人性化界面的实时通讯工具,将给那些刚刚接触 Linux 操作系统的用户带来极大的方便,而且通过设计这样的一个应用程序还能更好的学习网络编程知识和掌握 Linux 平台上应用程序设计开发的过程,将大学四年所学知识综合运用,以达到检验学习成果的目的。 (二)网络聊天软件的发展及现状 网络的诞生从某种意义上来说改变了我们的生活,它将这个世界
12、的上不同地域的人之间的距离拉近了。伴随着网络的诞生,网络聊天软件也随之而来。最初的网络聊天软件只是有简单的文本界面,功能也十分有限,随着技术的不断发展与强大,拥有更多功能和美观界面的聊天程序走进了我们的生活,也有越来越多的人将网络聊天软件作为他们日常生活交流和通信的工具。 网络聊天软件在国外有 ICQ 等,在国内主要有 OICQ、Ticq 和一些基于网页的即时通讯工具,像 Chinaren 网站上的 WebMaster 等等,都做得即美观,且功能强大,OICQ 现在拥有非常大的用户群。现在也有很多在网络上不使用服务器的通讯软件,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,有
13、着不可比拟的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。可以保存用户的个人信息或个人简介,供人查看。而且,无服务器的通讯软件,是以机器为通讯单元的,而有服务器的聊天软件是以人为通讯单元的。所以,带服务器的聊天软件在网络上,有着非常广泛的用途,为网络上的通讯带来了极大的方便,它使人与人之间的交流不再只局限于某一个范围,并且它的开销也是很小的,你只需要拥有一部可以联网的 PC 机就足够了!(三)TCP/IP 协议简介 TCP/IP 是国际互联网所采用进行网际互连的通信协议。实际所称的 TCP/IP协议包括了在国际互联网络应用的一组协议,互联网协议族是此协议族的另
14、一个名字。 1、TCP 协议简介 因为我们这个程序所采用的是面向连接的 TCP 协议,所以我们这里就只对TCP(传输控制协议)这一部分作详细的介绍。 TCP:传输控制协议(TCP:Transmission Control Protocol) 传输控制协议是一个 TCP/IP 组中能够实现可靠数据传送的传输层协议,并通过顺序响应能实现对应用程序的虚拟连接服务,在必要的时候进行包转发。与IP 协议相结合,TCP 代表了网络协议的核心。 大多数网络应用程序是在相同的机器上运行的,计算机上必须能确保目的地的应用程序从源地址处获得数据包,及源计算机上的应用程序的回复获得选择的路经。这一过程是通过使用 T
15、CP 的端口号完成的。网络 IP地址和端口号的连接要达到唯一的标识,我们称之为套接字或端点。为了可靠通信,TCP在端点间建立了连接或虚拟电路。 TCP 服务提供了数据流传输、可靠行、有效流控制、全双工操作和多路复用技术等。关于数据流传输,TCP 发送一个由序列号定义的无结构的字节流。这对应用程序有利,因为在被送出 TCP 之前应用程序不需要划分成块,TCP 可以将字节整合成字段,然后发送给 IP。 TCP 是面向连接的端到端的可靠协议,并保证传送数据包的顺序,而顺序是用一个响应序号来保证的,这个响应序号告诉接收者发送者期望的下一个包。如果在规定时间内,没有收到关于这个包的确认响应,则需要重新发
16、送此包。TCP 的可靠机制允许设备处理丢失、删除及读错的包。暂停机制允许设备监测丢失的包并请求重发。 TCP 提供了有效流控制。当向发送者返回发送确认响应,接收 TCP 进程就会暗示最高序列号,它能接收并保证不会发生溢出。全双工操作:TCP 进程能够同时发送和接收包。 TCP 中的多路技术:大量上层同时会话在单连接时进行多路复用。 2、UDP 协议简介 UDP 协议是英文 User Datagram Protocol 的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用 UDP 协议。UDP 协议从问
17、世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP 仍然不失为一项非常实用和可行的网络传输层协议。与我们所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议的顶层。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。 UDP 协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。 既然 UDP 是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下 UDP
18、 协议可能会变得非常有用。因为 UDP 具有 TCP 所望尘莫及的速度优势。虽然 TCP 协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观 UDP 由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。 (四)套接字简介 应用层通过传输层进行数据通信时,TCP 和 UDP 会遇到同时为多个应用程序进程提供并发服务的问题。多个 TCP 连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCPIP 协议交互提
19、供了称为套接字(Socket)的接口。 区分不同应用程序进程间的网络通信和连接,套接字主要有 3 个参数:通信的目的 IP 地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。通过将这3个参数结合起来,与一个 Socket 绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务 (五)开发平台简介 1、Linux 系统简介 Linux 操作系统是 UNIX 操作系统的一种克隆系统。它诞生于 1991年的10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界
20、上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 GNU计划和自由软件基金会(the Free Software Foundation - FSF)于 1984年创办。旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统。在 Linux 平台上运行的软件都是免费使用的,且你可以随意的改动代码部分,只要他们是完全基于 GNU 的。2、QT图形开发库简介 Qt是诺基亚开发的一个跨平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。基本上,Qt同XWindow上的
21、 Motif,Openwin,GTK等图形界面库和 Windows平台上的 MFC,OWL,VCL,ATL是同类型的东西,但是 Qt 具有下列优点:1)优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris,SunOS,HP-UX, Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX, OS390,QNX 等等。2)面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了
22、一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。3)丰富的 API Qt 包括多达 250 个以上的 C+ 类,还替供基于模板的 collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理 功能。4)支持 2D/3D 图形渲染,支持 OpenGL。5)大量的开发文档 。6)XML 支持。3、 编程语言和编程工具简介因为C语言是平台适应性最强的语言,差不多每种平台上都会有一个C编译器。C语言也更易移植,因而,在
23、Linux下编程的最佳语言应该是C语言,Linux上的很多应用程序就是用C语言写的。因为QT是用C/C+语言编写的,所以在开发LINUX下的GUI程序时使用C/C+语言是非常方便的。LINUX发布版本中都提供了C编译器gcc,它目前的版本是4.1。LINUX系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%30% gcc 编译器能将C、C+语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兰州 商学院 毕业论文 Linux QQ 软件 开发
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。