已阅读5页,还剩57页未读, 继续免费阅读
(通信与信息系统专业论文)基于linux的网络即时通讯软件设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
酉亩窑运盔堂巫土甄宜生主焦i 盒奎莲! 互 摘要 ( 网络即时通讯是在后p c 时代兴起的一种以i n t e r n e t 网络及其他有线、无 线网络为基础的实时通讯方式。本论文致力于研究开发一套以l i n u x 系统为基 础的,与平台无关的网络即时通讯系统( m y c o m m ) 。 针对国内外主流网络即时通讯软件存在的主要不足音本文提出了将网络即 时通讯软件引入l i n u x 操作系统桌面平台的必要性。在此基础上。论文采用了 商业大、中型软件设计中常用的c v s 版本控制,完成了m y c o m m 系统服务器和 客户机的软件总体设计,实现了诸如实时传送消息、用户管理、好友管理等网 络即时通讯的基本功能。本文的主要研究工作及其技术特点为:应用a n s i c c + + 语言、m y s q l 和q t 系统调用完成了系统软件开发,体现了与平台无关的 设计思想:引入了多线程及后台守护进程的系统设计方法,对用户消息原文经 过加密后放在u d p 报文中进行网络传输,使该系统具有良好的时间响应性和安 全特性;在服务器端,为管理员提供了基于命令行的系统管理方式;在客户机 端,为了提供良好的人机交互界面,利用q t 为开发平台,采用了流行的“皮 肤”设计方法;为适应使用者计算机配置的差异,将所有系统文件打包制作成 能自动安装的r 雕格式,用户不须手工重新构造和编译m a k e f l l e 文件,因而 更适合于l i n u x 环境下软件的发行和更新。 【基于m y c o m m 客户端的系统设计和对国内主流网络即时通讯软件o i c q 的分 析,作者完成并在网上发布了运行于l i n u x 一姗i n d o w 平台下的第一个o i c q 客 户端软件,实现了在l i n u xt - qo i 蛙服务器的通讯 关键词 即时通讯;l i n u x ;叫m y 8 q 。;0 1 c q a b s t r a c t a sas o r to fi n s t a n tm e s s a g et r a n s m i t t i n gm e t h o d ,t h er e a l t i m e n e t w o r kc o m m u n i c a t i o n sb a s e do nt h ei n t e r n e to ro t h e rw i r e do rw i r e l e s s n e t w o r k sh a v eb e e nf l o u r i s h e ds i n c et h eb e g i n n i n go fp e r v a s i v ec o m p u t i n g , o r i n f o r m a l l yn a m e d “p o s t p cd o m i n a n te p o c h ”i nt h i st h e s i s a r e a l t i m en e t w o r kc o m m u n i c a t i o ns y s t e m ( n a m e d “m y c o m m ”、b a s e do n l i n u x ,b u tp l a t f o r mi n d e p e n d e n t ,i si n v e s t i g a t e d i no r d e rt o i m p r o v ea n d e x t e n dt h e e x i s t i n gr e a l t i m en e t w o r k c o m m u n i c a t i o ns o f t w a r e ,e i t h e rm a d ei nc h i n ao ra b r o a d ,i ti sn e c e s s a r y t od e v e l o par e a l t i m ec o m m u n i c a t i o n ss o f t w a r ef o rl i n u xd e s k t o p o n t h i sb a s i s ,t h ec o n c u r r e n tv e r s i o n ss y s t e m ( c v s ) u s u a l l ye m p l o y e di n t h ed e v e l o p m e n to fl a r g e o rm i d d l e s c a l ec o m m e r c i a ls o f t w a r e ,isu s e d t od e v e l o pm y c o m ms y s t e m a f t e rc o m p l e t i n gt h eo v e r a l ld e s i g nf o rb o t h t h es e r v e ra n dt h ec ll e n t ,t h ea u t h o rh a s i m p l e m e n t e df u n d a m e n t a l r e a l t i m ec o m m u n i c a t i o n s f u n c t i o n s , s u c ha sr e a l t i m e m e s s a g e t r a n s m i t t i n g ,t h em a n a g e m e n to fc u r r e n tu s e ra n du s e r sf r j e n d e t c t h em a j o rr e s e a r c ha n dc h a r a c t e r i s t i c sr e l a t e dt ot h er e a l i z a t i o no f m y c o m ma r e ,o n l ya n s ic c + + a n ds o m es y s t e mc a l l so fm y s q la n dq ta r e u s e ds oa st oe m b o d yt h et h o u g h to fo s f r e e :t h er e a l t i m er e s p o n s ea n d n e t w o r ks e c u r i t yi s s u e sa r er e s o l v e db yt h ei n t r o d u c t i o no fm u lit - t h r e a d a n dd a e m o np r o g r a m m i n gm o d e ,a sw e l la st h ec o n v e r s i o no fac l e a rt e x t s i g n a l t oac o d e df o r mi nt h ed a t ad o m a i no fu d pp a c k e t :i no r d e rt o p r o v i d e a f r i e n d l y u s e ri n t e r f a c e ,as e r i e s o fs h e ll b a s e d s y s t e m m a n a g e m e n tc o m m a n d si nt h es e r v e ra n ds k i n b a s e dp r o g r a m m i n gt e c h n i q u e s i nt h ec l i e n ta r ed e v e l o p e db a s e do nq td e v e l o p m e n tt o o l s :t os o l v et h e h a r d w a r ed e p e n d e n tc o n f i g u r a t i o np r o b l e m ,a 1 1s y s t e mf i l e sa r ep a c k e d i n t oar p mf i l ew h i c hc a nb ea u t o m a t i c a l l yi n s t a l l e d a v o i d i n gr e v i s e a n dr e c o m p i l e “m a k e f i l e ”m a n u a l l y ,t h e r e f o r e ,m a k i n gt h es o f t w a r e u p g r a d ea n dd i s t r i b u t i o nm u c he a s i e r b a s e do nt h ed e v e l o p e dm y c o 嘲c l i e n ts o f t w a r ea n dt h ea n a l y s i so f 酉密奎运盔宝巫土瑟容生兰篮i 盒塞差! 望玉 t h ep o p u l a rr e a l t i m en e t w o r kc o m m u n i c a t i o ns o f t w a r e ,o l c q ,t h ef i r s t o i c qv e r s i o nu n d e rt h el if l u x x w i n d o we n v i r o n m e n t ,w h i c hc a nc o m m u n i c a t e w i t ht h es e r v e ro ft e n c e n t o i c qs u c c e s s f u l l y a n d s m o o t h l y i s i m p l e m e n t e da n dd i s t r i b u t e do nt h ei n t e r n e t k e y w o r d s :r e a l t i m ec o m m u n i c a t i o n :l i n u x :q t :m y s q l :o i c q 西南交通大学硕士研究生学位论文第1 页 第一章绪论 1 1 网络即时通讯的概念 8 0 年代后业,尤其是进入9 0 年代以来,随着电脑和互联网的普 及,尤其是移动互联网的发展,标志着以“联网、易用、时尚”【1 8 为特征的后p c 时代的到来,传统的3 c 被赋予了新的含义,人们利 用电脑和互联网的时间越来越多,以“社区( c o m m u n i t y ) ”、“内容 ( c o n t e n t ) ”及“商务( c o m m e r c e ) ”【i 引为主要特征的网络即时通 讯,最大程度地体现了网络给人们生活带来的变化,使得人们的沟 通更加方便、快捷,使人们真正有了天涯若比邻的“地球村”的感 觉。 网络即时通讯是一种在后p c 时代兴起的,以i n t e r n e t 网络及 其他有线、无线网络为基础的,在交互双方之间实时地传送语音、 文字、图像等信息的通讯方式。 即时通讯软件的最大特点是在网上进行信息的实时交流。它的 产生有着深刻的社会和技术的原因【24 1 。大凡人们都有渴望社交、获 得社会尊重、实现自我的需求,这正是网络即时通讯软件风行的驱 动力。而物质文明的日益发达所带来副作用,又使得人们习惯地与 周围的人保持距离,以致人们更愿意对陌生人敞开心扉。与传统通 讯方式相比,即时通信具备快捷、廉价、隐秘性高的特点,在网络 中可以跨年龄、身份、行业、地域的限制,达到人与人、人与信息 之间的零距离交流。从这点上讲,网络即时通讯的出现改变了人们 的沟通方式和交友文化,大大拓展了个人生活交流的空间。 即时通讯软件的互动性高于b b s 和e - m a i l ,它比电话严肃,比 e - m a i l 轻松。利用它可以实时传送文字信息、语音信息和发送文件。 另外,它还可以作为单位内部联络的一种方式。可以用来召开网络 会议,比起实地的会议来,不仅快捷,而且节省开支。 近年来,随着无线通信的快速发展,移动互联网为传统的 i n t e r n e t 注入了麓酶播匆,愿时也为即时通讯带来了一场革命,交 西南交通大学硕士研究生学位论文第2 页 互双方已经不再局限于以网络终端设备为难一的接入手段,p c 机在 传统的网络即时通讯中所起的作用正在被手机、传呼机,甚至普及 率已经相当高的电话所取代。这使得网络即时通讯更加大众化和人 性化,即使不会使用电脑的人现在也可以享受到即时通讯给人们生 活带来的变化。 另外,即时通讯软件被加入了越来越多的新功能,使它正从毫 无商业应用价值的聊天、游戏转变出来,成为能为商业企业带来商 机和实惠的领域。所有的这一切都让人们对网络即时通讯赋予了越 来越多的注意力。可以说,即时通讯的发展把后p c 时代的特征体现 的淋漓尽致,人们从来没有像今天这样感受到天涯咫尺。 1 2 网络即时通讯软件的国内外研究现状 1 2 1 网络即时通讯软件的发展现状 网络即时通讯软件发展到今天已经具备了一定规模,总结起来 主要可以分成b b s 、i r c 和i c q 、视频会议等几类1 2 2 11 2 3 】【4 酣。 1 、电子公告版系统 电子公告版系统的简称b b s ( b u l l e t i nb o a r ds y s t e m ) ,是一个 i n t e r n e i 网友交流思想、答疑解惑、广交朋友的场所。在该系统中, 站友可以在不同的讨论区对大家共同感兴趣的问题进行讨论和交 流。 b b s 最初发展起来的时候主要是针对电话拨号上网的用户,用来 作为用户交换软件的场所。到了9 0 年代以后,随着i n t e r n e t 以及 网络性能的提高,b b s 系统的性能也迅速提高。国内的一些著名的 b b s 系统也在不断地升级换代。 与b b s 系统通信使用的应用协议通常是t e l n e t 协议,即模拟主 机登录,该协议也是工作在客户机服务器模型下。早期的t e l n e t 协议主要是为了充分地利用远程的大型主机资源。在用户端,用户 只需要使用一个简单的t e l n e t 终端,就可以通过计算机网络把自己 的要求和指令传送给远端的主机。主机接收到用户的指令后,就按 照用户的要求去计算,而且在计算过程中需要用户输入的地方,主 西南交通大学硕士研究生学位论文第3 页 机可以将这些要求再传送给用户。这种远程登陆和交互功能在科研 机关和大学中是一个非常有效和方便的利用资源的方式。 t e l n e t 的这种交互的功能在b b s 系统中得到了很大的发挥。用 户在自己的p c 机上,使用t e l n e t 和8 8 s 主机建立连接,根据自己 的要求发出相应的指令,接收主机的信息。和用户建立了连接的主 机在接收到用户的指令以后,按照用户的要求向用户发出数据或是 做一些其它的操作。 用户使用t e l n e t 协议发送给b b s 主机要求建立连接的请求,那 么8 b s 主机就启动一个相应的进程来处理用户的要求。8 8 s 主机一般 是运行在u n i x 的操作系统下,所以对于多用户和多任务的处理能力 比较强。在对用户的身份认证通过以后,用户和b b s 主机的连接就 正式的建立了。当用户要退出系统的时候,用户再向b b s 主机发送 相应的消息,然后互相确认之后就可以和b b s 主机断开连接了。 由于登录的每个用户,b b s 主机都需要启运一个进程来和用户通 信,而每一个进程显然会占用主机的一些资源。因此,根据b b s 主 机性能的不同,主机一般有一个同时上线的最大用户数。如果达到 最大用户数,系统将会不允许新的用户再登录进来。而且在用户的 数量达到一定程度以后,由于大量的主机资源被占用,主机的负荷 太重,主机对正在线上的响应也会变的慢一些。 另外,由于t e l n e t 协议采用t c p 连接,每个连入b b s 系统的用 户都需要建立一个连接,如果使用者通过一个不稳定的网络进入系 统,有可能会不断地重新建立连接,这就更谈不上进行网络即时通 讯了。所以b b s 系统具有很大的局限性,这就导致了该系统在网络 即时通讯领域不会被广受欢迎。 2 、ir c 和i c 0 1 9 8 8 年,i r c ( i n t e r n e tr e l a yc h a t ) 起源于芬兰,作为“t a l k ” 的替代工具,其功能已经远远超过“t a l k ”,广泛应用于全世界6 0 多个国家。至今为止,许多u n i x 系统的初学者和专家级人士都在i r c 上拥有自己的帐号,在一个叫做“c h a n n e l ”的地方进行交流。i r c 将世界各地的人们连接到i r c 服务器上,再加入不同话题的c h a n n e l , 进行实时的交流对话,讨论自己的想法。由于i r c 的存在,空间上 的隔阂似乎己不是很大的问题。 i r c 一用户通过特殊的协议( i i i c 协议) 连到一台或者多台i r c 服 西南交通大学硕士研究生学位论文第4 页 务器上。它的特点是速度快、功能多。它的服务器版本主要用j a v a 编写,同时也包含一些c 代码。i r c 服务器现在全球有很多,并且完 全符合g n u 标准,无论是谁,只要有条件,就可以在机器上安装一 个i r c 服务器。与i c q 比较,i c q 的服务器就比较少。 与b b s 比较,要想进入i r c 系统,就不是一个简单的命令能完 成的了,它需要下载并安装一个客户端工具,与某一服务器建立连 接,现在最流行的i r c 软件有三种: m s c h a t :这是微软公司发布的i r c 软件,它的特点是在面板 上每个人都变成了卡通人物,生动一些。可是m s c h a t 不支持 很多i r c 命令。 p i r c h :它拥有一流的图像界面,是比较流行的i r c 软件。 m i r c :它有强大的命令功能,可以说是世界上最流行的i r c 软件。 i c q 最早是m i r a b i l is 公司推出的免费网上联络工具,i c q 是英 文“is e e ky o u ( 我找你) ”的谐音。i c q 的典型应用是网上寻呼机, 可以互相寻呼、建立连接、发送消息,笋可以使用其他的网络工具 ( 如:n e t m e e t i n g ,i n t e r n e t p h o n e ) 来打网上电话。 但是,由于l e o 是英文的,并且它的服务器设在国外,使用起来 不是很方便。0 i c q 是基于i n t e r n e t 的免费网络寻呼软件,是腾讯 o p e n i c q 的简称。它不仅仅是虚拟的网络寻呼机,更可以与传统的无 线寻呼网、g s m 无线移动电话的短消息系统互联,是国内唯一真正的 网络寻呼机。 o i c q 支持显示朋友在线信息、即时传送信息、即时发送消息、即 时传送文件等功能。用户界面参考了早期用户熟悉的英文i c o 软件, 使用起来更加方便。它支持所有微软公司发布的操作系统,是十分 灵活的网络寻呼工具。 o i c q 使用的是u d p 协议,这是一种无连接协议,即通信双方不用 建立连接就可以发送信息,所以效率比较高。广泛受到网友的欢迎。 3 、视频会议 视频会议要求在站点之间传送视频和音频信号1 3 5 1 1 46 1 。这里的站 点可以是个人计算机也可以是黾视系统,可能是在一座建筑物内传 送,也可能在大范围的地域内传送。 桌面会议有许多露琢橡箍,毽牾e l : 西南交通大学硕士研究生学位论文第5 页 n t s c ( 美国国家电视标准委员会) ; p a l ( 逐行倒相制) ; h 3 2 0 。 n t s c 和p a l 是视频信号传输的国际标准【35 1 ,传输视频会议信号 有四种基本方式,它们是: 在局域网( l a n ) 或广域网( w a n ) 上的压缩数字化视频; 通过公共交换数字网( p s t n ) 上的i s d n 传输压缩数字化视频: 在公共交换电话网( p s t n ) 上传输压缩数字化视频; 在局域视频网上传输未压缩视频: 虽然视频会议的技术含量、系统稳定性是所有网络即时通讯软 件中最高的,但是由于要使用它就需要一套专用豹设备,费用较高, 不是一般用户所能承受的,也是他们没有必要承受的,因此,视频 会议很少会具有大众化的一面。 1 2 2 网络即时通讯的前景展望 2 1 世纪将是网络化、信息化的世纪,信息的融合已经成为社会 发展的主流方向。人们认识到电信网、计算机网和有线电视网的各 自为营不适合通讯的发展,有必要将其高层应用业务融合,最终在 技术上趋向一致,网络层上可以实现互联互通,形成无缝覆盖,业 务层上互相渗透和交叉,应用层上趋向使用统一的i p 协议,在经营 上互相竞争、互相合作,朝着向人类提供多样化、多媒体化、个性 化服务的同一目标逐渐交汇在一起,行业管制和政策方面也逐渐趋 向统一。三网合一可以提供现有在三种网络上提供的话音、数据、 视频和各种业务的新网络,能满足未来话音、数据和视频的多媒体 应用要求,这一计划的最终实现,将使网络即时通讯以更丰富的接 入方法,更高的服务质羹,更友好的面貌呈现在世人的面前。 由于i n t e r n e t 的高速发展和移动世界向i p 的融合,现有互联 网资源已经不能满足互联网设备的不断增多、“永远在线”的互联 网接入服务和其他一些新兴的互联网应用服务。2 0 0 0 年5 月,3 g 标 准化组织3 g p p 采纳i p v 6 为多媒体服务的必选协议。它将几乎可以 无限制地提供新的i p 地址,保证数据传输的安全性和完整性,具有 自动配置、移动计算、数摄组播和更有效的网络路由聚合等功能。 西南交通大学硕士研究生学位论文第6 页 这一切将使更多的人可以享受到网络即时通讯所带来的实惠,使人 们对网络的安全可靠性增加信心,使互联网的使用更加简便,无疑 这都会为即时通讯带来更多的用户群体。 另外,a t m 网络和千兆以太网的出现和应用,特别是光纤到楼计 划的实施,为i p v 6 等技术提供了骨干网上的技术支持,视频和音频 信号可以更加稳定地在网上传送。a t m 网络的架设成功可以使网络即 时通讯提供更好的服务质量。 由此可见,网络新技术的提出都为网络即时通讯的发展奠定了 坚实的基础。另一方面,正因为网络即时通讯的发展,使得更多的 终端用户和企业单位被吸引到了i n t e r n e t 的周围,这也为网络的高 速发展提供了人力和资金上的保证。 正象h a n d s p r i n g 的c e o 、今日p a l m 经济的奠基者j e f fh a w k i n s 在纽约p ce x p o2 0 0 0 的演讲台上讲的那样“即时消息通讯和会议功 能前景可期”1 2 j 。 1 3 国内外主流即时通讯软件问题分析 1 3 1l in u x 系统的国内外发展现状 在过去的两年平台软件市场中,l i n u x 是绝对的热点、焦点【2 5 1 。 为了让更多用户了解l i n u x ,各l i n u x 的生产厂商把桌面端当作一个 窗口。许多最新的l i n u x 桌面版产品在界面风格上更接近w i n d o w s , 而且也突破了以往在l i n u x 操作系统上缺乏应用软件的缺陷,内嵌 了办公软件和网络浏览器,还有类似w i n d o w s 的媒体播放器。在不 少的l i d u x 平台上甚至可以稳定地支持“土著也疯狂”、“文明”、“雷 神之锤”等大型游戏的运行。同时,还为开发者准备了多种编程语 言、开发调试工具和开发支持库,初步解决了制约l i n u x 桌面端发 展的应用问题。 l i n u x 的安全性是很多企业选择其作为服务器操作系统的主要 因素。在过去的几年,l i n u x 系统的安全技术不断发展,大量的成功 案例( 如中华宽带网工程中的w e b 发布系统、邮件系统、安全系统、 管理系统、备份系统、电子商务系统,北京“校校通”工程,中犀 亘查銮塑查兰至主旦塞兰兰笙笙塞笔:;要 萄再丽赢磊丽墨磊鬲赢荔纂忑蕊两而石丽呵- - 国际广播电台的h a 集群架构解决方案,长城冤希小区娌砹,寺u , 使得用户对l in u x 的兴趣大增。 可以预见,l i n u x 在企业级的应用将是l i r i t l x 的主要发展方向1 【27 1 。而各个l i n u x 厂商都认识到了这一发展趋势所以在企业级应 用的领域各个厂商都有自己丰富的产品。在l i f l u x 家族中还有专门 为中小企业量身定做的产品,有企业级服务器产品,有专门针对大 型数据库应用进行优化、调整的产品,还有集群解决方案的产品等。 另外,越来越多的l i n u x 平台能够完美地支持r a i d 磁盘阵列、 u p s 断电自动数据存储与报警、定时备份与备份日志、大容量的日志 文件系统 5 6 1 。为了确保用户数据的安全,不少l i n u x 系统还支持 d b 2 、s y b a s e 、o r a c l e 等大型数据库系统。在l i n u x 防毒杀毒领域 也有不少产品问世l s s l ( 如i n t e r s c a l l v ir u s w a l l 服务器杀毒产品) 。 在嵌入式平台领域,目前v x w o r k s 、w in c e 、p a l m o s 等系统存在 着技术难度过大,开发和维护费用过高等问题。而l i n u x 在此方面 有着大量的优良特性:源码开放,没有版税;功能强大,稳定;非 常优秀的网络功能,图像、文件管理功能,以及多任务支持功能; 可定制性;有成千上万的开发人员支持:有大量且不断增加的开发 工具 2 5 55 1 ”“。根据赛迪顾问的一项关于未来三年嵌入式领域首选操 作系统的调查数据显示,l i n u x 以5 4 8 排在各操作系统的首位1 28 1 。 不少专业人士认为在未来的几年内,由于l i n u x 在台式机应用 方面的不断完善和提高,人们对w i n d o w s 的性能、安全、价格,以 及微软在许可协议的松绑方面日益不满1 2 0 1 。在台式机、家用机,甚 至是企业、政府用p c 机市场上l i f l u x 将占有重要的市场份额。同时, l i f l u x 预装市场将开始启动,由于微软前所未有地放松了预装 w i n d o w s 的许可协议,市场上将会出现只预装l i f l u x 或同时预装 l i n u x 、w i n d o w s 二种操作系统的p c 。由于微软一直就存在的美国间 谍秘密至少将有一家跨国公司会宣布全面禁用微软的w i n d o w sx p , 转向能够实现互操作的u n i x + m a c + l i n u x 混合平台【2 。无论人们的预 言会不会成为现实,l i n u x 都不会停步不前,g n u l i n u x 将在服务器、 台式机和嵌入设备领域的应用不断地增长。 西南交通大学硕士研究生学位论文第8 页 1 3 2 当前国内主流即时通讯工具的不足 在后p c 时代,操作系统将向着多平台方向发展,在这领域, 微软一家垄断的局面将在本世纪终结,l i n u x 平台将成为操作系统发 展的一个热点。另一方面,随着技术的不断进步,网络即时通讯将 以更稳定的传输质量,更多的资源,更方便的接入方式展现在人们 的面前,将有更多的网络用户被吸引到它的周围。如果能将l i n u x 平台和网络即时通讯整合,让网络即时通讯软件不再受平台的限制, 不仅会促进l i n u x 的更大发展,同时也会让更多人关注即时通讯。 在国外不少即时通讯服务提供商已经注意到了l id u x 平台与网 络即时通讯软件的融合问题,i c q 软件早已有它的l i n t l x 版本。除 i c q 以外的其他一些流行的即时通讯软件也已注意到了与平台无关 性的开发1 3 ,a o l 一时代华纳公司将发布其a o l 软件的l i f l u x 版本, i r c 由于它的服务器和客户机软件都是用j a v a 编写完成的,因此, 在开发之初就具有跨平台的特性,正因为这一特性,使得大量的 l i n u x 爱好者和专业人士被吸引到了它的周围,使之不再是一个简单 的聊天工具。而在国内,广受欢迎的o i c q 却一直在w in d o w s 平台上 发展,腾讯公司至今没有发布一个l i i i u x 版本的o i c q ,将大量的非 w i n d o w s 平台用户拒之门外。由于网络的无国界性,长此以往,o i c q 必将失去大量的国内用户群。 1 4 本文研究思路与内容安排 通过以上对网络即时通讯软件和l i f l u x 操作系统的发展现状及 前景展望的分析,可以看出,网络即时通讯在后p c 时代的信息产业 领域具有巨大和旺盛的生命力,另一方面,l i f l u x 操作系统在未来的 几年极有可能从微软公司的w i n d o w s 操作系统中夺取大量的订单, 从而和w i n d o w s 平分操作系统软件的市场份额。因此,如果能将一 些主流网络即时通讯软件引入l i n u x 系统,不仅能够促进网络即时 通讯的普及,同时也能够进一步解决l i n t l x 桌面端发展的应用问题, 提高终端用户对l i n u x 系统的认同程度。基于此,实现网络实时通 讯软件在l i n u x 系统中的系统设计的初衷,一方面在于熟悉掌握在 l i n u x 的窗口系统( x w t n d o w ) 审戳用t r o l l 公回钓q 霉兔费版f 3 i l 在 西南交通大学硕士研究生学位论文第9 页 u n i x x 1 1 环境下完成具有“皮肤”功能的c + + 程序设计,以及在g c c 环境下,利用系统开发支持库完成后台守护进程以及与m y s q l 通讯 的程序设计。另一方面,解决当前国内最流行的网络即时通讯软件 没有l i n u x 平台下x w i n d o w 中运行的版本的问题,初步完成了将主 流即时通讯软件与最有发展前景的操作系统相结合的尝试。本文内 容主要包括: 从与平台无关的角度,自行建立一个网络即时通讯软件 m y c o m m 。该软件包括网络即时通讯的服务器和客户机端。 在建立m y c o m m 的过程中,研究c c + + 语言访问m y s q l 数据库 的主要方法。讨论在l i f l u x 平台下创建后台守护进程和u d p s o c k e t 的编程方法。探讨l i n o x 系统的多线程的局限性及多 线程应用程序的创建过程。 结合m y c o m m 软件的实现,讨论瘦客户思想。以x l ib 的程序 设计为基础,系统地研究q t 应用开发库的编程思想。 为当前流行的网络即时通讯软件o i c q 开发其客户机的l i n u x 版本,在开发过程中需要对它的至少一个w i n d o w s 版本的加 密解密算法有所了解,以便与腾讯主服务器进行通讯。 西南交通大学硕士研究生学位论文第1 0 页 第二章即时通讯m y c o m m 系统总体设计 2 1 实时通讯软件需求分析和功能设计 对l i n u x 系统中实时通讯软件的需求分析工作是该软件生存期 中重要的、决定性的一步【47 l 。如果只是清楚地了解将l in u x 系统与 网络实时通讯整合起来的目的和背景,并不能把l in u x 系统中实时 通讯软件的功能和性能的总体概念描述为具体的需求规格说明。因 此,深入描述该软件的功能和性能【4 ”,确定设计的限制及该软件同 其他系统元素的接口细节,定义其他有效性需求是在总体设计中必 须进行的。 总体上讲,需要完成的l i n u x 系统中实时通讯软件主要包括两 个不同的版本。一是称作m y c o m m 的一套独立的、完整的系统,在这 套系统中应完成实时通讯的服务器和客户机两方面的全部设计工 作。另一个版本是基于l i n u x 操作系统的腾讯公司的o i c q 客户端软 件的设计实现。 在m y c o m m 系统中,主要包含的功能有信息的实时传送功能、好 友及坏人的管理功能、用户的信息的管理功能【29 】以及客户机端主窗 体的皮肤管理功能。另外,需要对客户机和服务器间传输的信息增 加一些安全保密措施,以保证信息的安全可靠传输。 该系统的服务器端通常需要运行在l i n u x 操作系统下,实现与 m y s q l 数据库的访问连接,另外,由于m y s q l 数据库提供o d b c 接口, 因此,如果系统服务器端豹设计中考虑到不使用太多的系统调用, 而主要使用a n s ic ,m y c o m m 的服务器版本不经过修改或只经过简 单的修改就可以在m sw i n d o w s 平台和各种u n i x 平台下运行,实现 服务器版本的与平台无关性。该系统的客户机端选择在t r o l l 公司 的q t 免费版【3 l j 上开发。由于q t 是是面向对象的,极易扩充的c + + 风格高层图形库,因此。如果只使用q t 提供的系统调用,就可以实 现跨平台性。这样,m y c o m m 系统就实现了平台无关。 由于m y c o m m 的意篡纛麓鬻黉孵遇讯,这就对蕉筑瓣对闻特性有 西南交通大学硕士研究生学位论文第1 1 页 特别要求,系统响应时问、更新处理时间、数据转换和传输时间、 运行时间不能过长,在网络繁忙程度稳定地小于0 2 时,上述时间 之和不应大于1 0 秒1 3 0 。另外,包含服务器和客户机在内的整个系统 应该包含尽最大可能重传的机制,以减小通讯中消息丢失的概率。 在用户界面方面,服务器端应该实现简单的字符s h e l l 下的管 理功能,在客户机端应该完成x w i n d o w 下友好的界面设计。 另外,在m y c o m m 系统中,特别是在m y c o m m 的客户机端应该充 分考虑人机交互平台的现场保护,也就是说在发送消息和接收消息 以及后台处理中,前台不应该失去焦点而对用户请求失去响应,所 以,在程序设计中,采用多线程是必须的。在采用多线程时,不同 线程之间的同步,又是需要引起特别注意的重点。 在m y c o m m 系统的服务器端,应该采用后台守护进程的编程方法, 使侦昕进程随系统启动起就在后台安全她运行,不使用命令行方式 启动服务器进程。 在基于l i f l u x 操作系统的o i c q 客户端,应该解决至少一个o i c q 版本在通讯过程中的信息加密解密方法的提取,至少完成与腾讯公 司主服务器的互连互通,从而实现一些基本的网络实时通讯功能。 该系统的其他方面问题,都参照m y c o m m 客户机端的要求设计。 系统应以r p m 方式构造成发行版本。 2 2 m y c o m m 数据流图 m y c o m m 系统中,处理的主要为非数值数据,这就存在着大量的 数据流动,归结起来,主要的数据流可以分为服务器内部的数据流、 客户机内部的数据流和网络上的数据流,分别参见图2 1 、图2 2 和 图2 - 3 。 西南交通大学硕士研究生学位论文第12 页 图2 1 服务器内部数据流图 西南交通大学硕士研究生学位论文第13 页 图2 - 2 客户机内部的数据流图 西南交通大学硕士研究生学位论文第14 页 图2 - 3 网络上的数据流图 2 3m y o o m m 中的加密解密方法 m y c o m m 系统中采用的加密解密算法参照了o i c q 的第一个版本 0 i c q9 9 cb u i l d0 8 2 0 版本在客户机方的加密解密算法。0 i c q 用户 一旦在自己的计算机上访问o i c q 服务器后,软件会自动地将用户i d 、 登录密码、好友信息、消息记录等个人信息经过加密记录在用户自 己的计算机上,以便下次访问时使用。m y c o m m 系统在服务器与客户 机间通讯就采用了o i c q 在本地的这种加密机制。 经过分析,可以得知o i c q9 9 cb u i l d0 8 2 0 版本在本地的用户 密码加密机制是将用户密码转换成对应的a s c i i 值,然后用o x f f 减 去这个a s c i i 值作为加密结果存储起来。例如,当用户密码为“o i c q ” 时,密码所对应的a s c i i 码是“4 f4 9 4 35 1 ”,经过加密的密文是 “b ob 6b ca e ”。 m y c o m m 在客户机与服务器之间传送数据时也采用这种对称加密 方法。将所有需要经过网络传输的信息都转化成其对应的a s c i i 码, 用o x f f 减去这个a s c i i 码在网上传送。与o i c q 加密算法相区别的 是,在o i c q 中,由于这种加密算法是针对用户密码的,所以它无需 考虑a s c i i 值在1 2 7 以上的情况。但是在m y c o m m 系统中,由于在服 务器和客户机间会传送大量的汉字或其他符号,这些符号都对应着 扩展a s c i i 码表中的编码。 在编程实现中,将c h a r 型字符( c h a rt r a n s f e r e d d a t a ;) 转 西南交通大学硕士研究生学位论文第15 页 换成其对应的a s c i i 码可以简单地使用的类型强制转换完成,即 “( i n t ) t r 8 1 2 s f e r e d d a t a ”。这种强制转换对于a s c i i 码表中小于1 2 7 的字符都能够正常完成,但是,当t r a n s f e r e d i ) a t a 对应的a s c i i 码 大于1 2 7 时,会出现错误,这是因为在转换中,编译系统认为最高 位是符号位,从而转换出负数。例如,“我”字对应的第一个a s c i i 码转换结果为一5 0 ,即“1 0 1 1 0 0 1 0 ”,需要将其非符号位逐位求反末 位加1 以求出其补码,即“1 1 0 0 1 1 1 0 ”。它对应的十进制数是2 0 6 , 这就是“我”字对应的第个a s c i i 码的值。类似地可以计算出其 第二个a s c i i 码的值是2 1 0 。在程序中,可以按照补码与原码的关系, 简单地将类型强制转换出的负整数加上2 5 6 ( o x f f ) 就可以得到正确 的a s c i i 编码了。经过上述计算,可以得到“我”字在客户机与服 务器之间传送的编码是“3 l2 d ”。 这种加密算法的特点是简单、高效,适用于小型即时通讯软件 的加密。 2 4m a k e riie 文件的构造 在程序中,无论是服务器还是客户机端都需要对源程序进行编 译输出成可执行的二进制代码,为了减少编译所花费的时间,提高 编译效率,特别是减小因为编译带来的出错的概率,有必要构造 m a k e f i l e 文件f 1 3 】【5 0 j s l l 。 m a k e f i l e 描述了软件包中各个文件之间的关系,提供了更新每 个文件的命令【5 2 j 。在一个软件包里,通常是可执行文件由连接目标 文件而更新。而目标文件由编译源文件而更新。当一个适当的 m a k e f i l e 存在时。每次改变某些源文件后,只需要用s h e l l 命令m a k e 就可以完成所有必需的重新编译。 m a k e f i l e 编写的基本规则。】f 4 4 1 是: 以“# ”开头的行为注释行 m a k e f i l e 中可以定义多个目标,将与某一目标有相关性的其 他目标或文件罗列在冒号的后面,同时m a k e 检查所有目标的 相关性,从底层向上递归编译,如: m o c s k i n b u t t o n 0 :m o c s k i n b u t t o i l c p p 厘南交通大学硕士研究生学位论文第16 页 g + + 一c $ ( i n c ) 一0m o c s k i n b u t t o n 0m o c s k i n b u t t o n c p p m o c s k in b u t t o n c p p :s k i n b u t t o n h $ ( m o c ) s k i n b u t t o n h 一0r i o c s k i n b u t t o n c p p 会递归地先运行第四行后运行第二行。 m a k e f i l e 中可以使用“”将一个单独的命令行延续成几行, “”后不能跟任何字符 每条s h e l l 命令的第一个字符必须是t a b 键 在编译q t 产生的c + + 文件时,对于定义c + + 类的头文件,需 要用m o o ( m e t a o b j e c tc o m p i le r ) 处理含有q o b j e c t 宏定义。 处理后的文件应该与类的实现所在的文件一同编译连接成可 执行文件: m y c o m m :s k i n 0 m o c s k i n o g + 十一0m y c o m ms k i n om o c s k i f l 0 $ ( l i b s ) 一p t h r e a d 另外,在编译包含有多线程的源文件时,要使用- p t h r e a d 参数 编译。 2 5 本章小结 一个成功的项目,从技术上和管理上离不开软件的需求分析及 其总体设计。本章主要利用软件工程学对m y c o m m 系统的 要求达到的软件功能 软件发行版本的系统性能 软件的移植性 系统数据流和数据结构 加密算法的设计 等预期目标进行阐述,为后面的软件开发提供了“如何做”的技术。 由于编译工作自从软件代码的开发起就不断地进行,在本章的最后 还对提高编译效率和编译准确性的m a k e f i l e 文件的结构进行了分 析,为软件开发打好了坚实的基础。 西南交通大学硕士研究生学位论文第17 页 第三章m y c o m m 服务器设计与实现 3 1 服务器端功能设计 m y c o m m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业维护与固定资产管理表
- 《几何图形变换深化课程》
- 人员招聘流程与标准操作流程工具
- 会展场地选择面试题目及答案
- 会计事务所面试题及解答
- 跨境支付风险防控-第1篇-洞察与解读
- TCL科技校招面试题及答案
- 医院护理安全管理课件
- 中国一汽招聘面试题及答案
- 2025年辐射安全与防护培训考试题库附答案
- 二零二五年度车辆抵押担保资产管理合同范本
- 重症监护科口腔护理
- 2025年党纪法规知识测试题(含答案)
- 运输公司合同预付款协议
- 卫生系统护士岗位招聘基础护理学模拟试题(含答案)
- 服装设计职业生涯
- 报关单、箱单、形式发票、订单模版
- 直线的投影课件
- 实验小学教育数字化转型十五五规划
- 脑卒中康复治疗教案
- JG/T 388-2012风机过滤器机组
评论
0/150
提交评论