毕业论文基于Linux平台的IM软件.docx
- 文档编号:1637233
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:12
- 大小:89.98KB
毕业论文基于Linux平台的IM软件.docx
《毕业论文基于Linux平台的IM软件.docx》由会员分享,可在线阅读,更多相关《毕业论文基于Linux平台的IM软件.docx(12页珍藏版)》请在冰豆网上搜索。
毕业论文基于Linux平台的IM软件
毕业论文——基于Linux平台的IM软件
————————————————————————————————作者:
————————————————————————————————日期:
基于Linux平台的局域网可语音的IM软件的设计与实
作者:
肖亚统
专业:
软件工程
指导老师:
陈生庆
摘要
随着计算机网络的日益普及人们通过网络进行交流显得越来越重要。
于是出现了一系列的通信软件。
自1990s四位以色列人推出的ICQ后,IM首次出现,凭借实时在线的交互特性迅速风靡全球。
如今,M软件正逐渐成为一个集合了文字、视频、音频业务以及多种增值业务的多媒体网络通信软件,凭借其所具有的廉价性和方便性以及功能不断完善,IM已经和WWW、Email等一起成为网民们最喜爱的网络服务之一。
尤其在国内,腾讯QQ普及率远高于Email,在部分中国网民眼中上网基本等价于使用QQ等。
2014年4月11日晚间,腾讯QQ同时在线用户数突破2亿。
本毕业设计就是模拟QQ聊天软件,开发一个基于Linux平台的局域网实时
语音通信软件。
系统采用C/S架构,基于Linux平台开发,采用C++编程语言,由服务器端和客户端程序组成,并使用QT进行图形界面的设计。
主要实现的是聊天软件的部分功能,即文字聊天、语音聊天、保存用户消息等等功能,主要完成任务包括服务器模块的设计实现、文字聊天、保存用户消息等等功能。
通过运行、测试与分析,该功能聊天软件运行稳定、可靠,具有一定的实用价值。
关键词:
LinuxQT局域网网络音频多线程IMC/S
Abstract
Alongwiththehigh-speeddevelopmentofthecomputernetworkechnology,variousofapplicationsbasedonnetworkwasborn,likeinformationreleasing,
datasharing...ThedevelopmentoftheLANistheamefast.Somegovernments,enterprisesandschoolsconstituteaLANfirst,thenjoinintoINTERNET.SotheinstantmessengerinLANwasborned.
ThisdissertationfocusesonthedesigningandimplementationofCommunicationsoftwareonLAN.AndaCommunicationsoftwareisbuiltusingQTonLinux.First,theDevelopmentenvironment,theBackgroundandthetechnologyarebrieflyintroduced.ThentherequirementsanalysisandsystematicdesignofaCommunicationsoftwareisdiscussedindetail.Andtheimplementationdetailsofeachfunctionmodule,isgiven.Last,usingtheVMtotestthesoftware.
Keywords:
Linux,QT,LAN,NetWork
一、前言
1.1课题背景
1.2国内外研究现状及发展趋势
1.3本课题的研究的目的和意义
2、关键技术
2.1Linux操作系统
2.1.1什么是Linux系统
准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于LinusTorvalds在GPL(GNUGeneralPublicLicense)版权协议下发行,任何人都可以自由的复制(copy),修改(change),套装分发(distribute),销售,但是不可以在分发时加入任何限制,而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和源代码。
对于Linux用户和系统管理员来,Linux是指包含Linuxkernel、utilities(系统工具程序)以及application(应用软件)的一个完整的操作系统。
Linux的应用软件是由自由软件基金会(FSF)开发的,全世界许多热心的程序员为Linux开发或移植了很多应用程序,包括X-Windows、Emacs、TCP/IP网络(包括SLIP/PPP/ISDN)等等现在Linux(包括内核和大量的应用程序)光是执行程序就已经达到200M,完全安装后的规模将更大(大约500M左右)。
从本质上讲Linux是Unix的”克隆”或Unix风格的操作系统,在源代码级上兼容绝大部分的Unix标准(如IEEEPOSIX),它遵从POSIX规范,例如对于SystemV来说,把其上程序源代码拿到,Linux下重新编译后就可以运行。
Linux的标志是可爱的企鹅,至于为什么选用企鹅Linus是这样说的,别的都被他人用了企鹅,不是也非常可爱吗?
!
由Linux作者发布的仅仅是一个内核而己有一些公司或组织把内核、源代码及相关的应用程序组织在一起发行,于是就产生了不同的Linux发行(distributor)版本,比较著名的发行版本有RedHat、Ubuntu、Debian等。
2.2.2Linux的发展历史
Linux的历史可以追溯到1990年LinusTorvalds还是芬兰赫尔辛基大学的一名学生用汇编语言写了一个在80386保护模式下处理多任务切换的程序。
1991年10月5号发布了Linux0.0.2版本,这个版本已经可以运行bash(一种用户与操作系统内核通讯的软件)和gcc(GNUC编译器)了。
Linus从一开始就决定自由扩散Linux、包括源代码他把源代码发布在网上随即就引起爱好者的注意,他们通过互连网也加入了Linux的内核开发工作,一大批高水平程序员的加入,使得Linux达到迅猛发展。
到1993年底,Linux1.0终于诞生。
Linux1.0已经是一个功能完备的操作系统了,其内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也非常好。
Linux加入GNU并遵循公共版权许可证(GPL)由于不排斥商家对自由软件进一步开发不排斥在Linux上开发商业软件,故而使Linux又开始了一次飞跃,出现了很多的Linux发行版,如Slackware、Redhat、TurboLinux等十多种,而且还在增加,还有一些公司在Linux上开发商业软件或把其他Unix平台的软件移植到Linux上来,如今很多IT界的大腕如IBM、Intel、Oracle、Novell等都宣布支持Linux!
商家的加盟弥补了纯自由软件的不足和发展障碍,Linux得以迅速普及。
2.2.3Ubuntu
Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为友帮拓或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。
Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。
Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。
Ubuntu的版本号是根据其发布版本的日期而定。
版本号由该次发布的年份和月份组成,并未反映其实际版本。
Ubuntu的首次发布(WartyWarthog)是在2004年10月,因此该版本为4.10。
每六个月发布一个新版本,而每两年发布一个长期支持版本(LTS)。
UbuntuJauntyJackalope于2009年4月23日发布,因此版本号为9.04。
UbuntuKarmicKoala,即Ubuntu9.10,于2009年10月29日发布。
前一个长期支持版本(开发代号为LucidLynx)于2010年4月发布,其版本号为10.04LTS。
版本Ubuntu11.10,开发代号:
“OneiricOcelot”,已经于2011年10月13日发布并提供下载。
我用的是Ubuntu12.04.Ubuntu12.04(代号PrecisePangolin)已经于2012年的4月26日发布。
2.2数据库SQLite
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
SQLite第一个Alpha版本诞生于2000年5月。
至今已经有13个年头,SQLite也迎来了一个版本SQLite3已经发布。
SQLite是遵守ACID关系型数据库管理系统,它包含在一个相对小的C库中。
它是D.RichardHipp建立的公有领域项目。
[不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。
所以主要的通信协议是在编程语言内的直接API调用。
这在消耗总量、延迟时间和整体简单性上有积极的作用。
整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。
它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
2.3开发语言C++
C++程序设计语言是由来自AT&TBellLaboratories的BjarneStroustrup设计和实现的,它兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言设施。
C++最初的版本被称作“带类的(CwithClasses)[Stroustrup,1980],在1980年被第一次投入使用;当时它只支持系统程序设计和数据抽象技术。
支持面向对象程序设计的语言设施在1983
年被加入C++之后,面向对象设计方法和面向对象程序设计技术就逐渐进入了C++领域。
在1985年,C++第一次投入商业市场[Stroustrup,1986][Stroustrup,1986b]。
在1987至1989年间支持范型程序设计的语言设施也被加进了C++[Ellis,1990][Stroustrup,1991]。
随着若干独立开发的C++实现产品的出现和广泛应用,正式的C++标准化工作在1990年启动。
标准化工作由ANSI(AmericanNationalStandardInstitute)以及后来加入的ISO(InternationalStandardsOrganization)负责。
1998年正式发布了C++语言的国际标准[C++,1998]。
在标准化工作进展期间,标准委员会充当了一个重要的角色,其发布的C++标准之草案在正式标准发布之前,一直被作为过渡标准而存在。
2.4Qt编程软件
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。
它既可以开发GUI程式,也可用于开发非GUI程式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 Linux 平台 IM 软件
![提示](https://static.bdocx.com/images/bang_tan.gif)