- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JAVA的android即时通讯软件毕业论文
目 录
1 绪论 1
1.1国内外聊天系统的研究现状 1
1.2 Java语言 2
1.2.1 Java的发展历史 2
1.2.2 Java的特点 3
1.2.3 Java与Internet 4
1.3 Socket编程 4
1.3.1 关于TCP/IP协议 4
1.3.2 服务器和客户机 5
1.4本文内容安排 6
2 需求分析 7
2.1 可行性研究 7
2.1.1 可行性分析 7
2.1.2系统功能需求 7
2.1.3 系统性能需求 8
2.1.4 系统运行需求 8
2.2 数据流图 8
2.2.1 顶层数据流图 8
2.2.2 一层数据流图 9
2.2.3 二层数据流图 9
3 概要设计 11
3.1系统实现原理 11
3.2 系统实现层次图: 12
3.3各模块详细功能 12
3.3.2服务器端结构 12
3.3.2 客户端结构 14
4 详细设计 19
4.1 系统流程图 19
4.1.1 系统总体流程图 19
4.1.2 系统客户端流程图 20
4.2 编写服务器端程序 20
4.2.1 问题陈述 20
4.2.2 解决方案 21
4.3客户端程序编写 28
4.3.3 聊天室 38
参考文献 46
致谢 45
1 绪论
1.1国内外即时通讯系统的研究现状
目前国内外做即时通讯软件的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。本人取最具代表性的QQ和MSN进行了一些研究,作为我开发即时通讯的准备。
腾讯无疑是国内即时通讯市场的霸主,自从99年进入即时通讯领域并迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的时常占有率依然稳步增长。腾讯的成功与其对QQ的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯QQ运行时的各种细节。可以确定腾讯QQ是以多服务器提供服务、服务器总控客户端、客户端之间UDP直连通信的。并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。
其模型如图1-1
图1-1 腾讯QQ服务器-客户端模型1
与腾讯QQ不同,微软的MSN Messenger只使用了TCP作为传输层通
信协议,所有客户端与服务器进行连接,然后通过与服务器的TCP连接进行中转通信。
其模型如图1-2
图1-2 MSN服务器-客户端模型2
腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服务器的处理压力,但其内部协议和实现复杂度都较高。而MSN Messenger所有数据都要经过服务器,所以服务器方的数据量会大一些(这也是平时很少见到使用MSN进行语音视频聊天的)。
综合腾讯QQ和微软MSN Messenger的特点和我所学专业技术范畴,我打算在我的系统中尝试建立MSN的服务器-客户端模型,但以单服务器提供服务。
1.2 Java语言1.2.1 Java的发展历史
Java的发展历史,可以追朔到1990年。当时Sun Microsystem公司为了发展消费类电子产品进行了一个名为Green的项目计划。这个计划的负责任是James Gosling。起初他用具有面向对象特征的C++语言编写嵌入式软件,可以放在面包机或PDA(Personal Digital Assistant,个人数字主力)等小型电子消费这杯里,以使设备变得更为“聪明”,更具备人工只能。但后来发现C++并不适合这类任务;因为C++常会使系统失效。尤其在内存管理方面,c++采用直接地址访问方式。需要程序员记录并管理内存资源。这造成程序员编程的极大负担,并可能产生多个Bugs。面包机上的程序错误可能使面包机烧坏甚至爆炸。
为了解决此类问题,Gosling决定开发一种新的语言,并取名为Oak。它采用了大部分与C++类似的语法对可能具备危险性的功能加以改进,例如将内存管理改为由语言自己进行管理,以减少程序员的负担及可能发生的错误。Oak是一种可移置的语言,它是一种平台独立的语言,能够在各种芯片上执行,可以降低设备的研发成本。1.2.2 Java的特点
Java是一种简单、安全、容易适用、面向对象、可移置、高性能、多线程的语言。
简单性
Java语言简单高校,基本Java系统(编译器和解释器)所占空间不足250KB由于Java最初是为了对家用电器进行集成控制而设计的,因而具备简单命了的特征。
面向对象
面向对象技术是现代工业的一次革新,提高了软件的模块化程度和重复适用率,缩短了软件开发时间,减低了卡发成本。在Java之前虽然已经有面向对象的程序设计语言问问世,但有些如c++并不是完全的面向对象,而是面向过
您可能关注的文档
最近下载
- 从医理到临床:王长洪教授治疗溃疡性结肠炎的学术经验剖析.docx
- 多学科综合门诊管理制度.docx VIP
- 高中英语选择性必修二 Unit2 Bridging cultures Period 6 Assessing your progress课件.doc VIP
- 医院停电的应急预案及流程(10篇).pdf VIP
- 英语选择性必修2选择性必修 二 Unit 2 Bridging Cultures - Assessing your progress(28张PPT).pptx VIP
- 大疆 DJI Matrice 4 系列 - 用户手册 v1.0.pdf
- 2024年度水利工程委托安全评估与咨询服务合同3篇.docx VIP
- 幼儿数字笔顺描红田字格1-10(B5打印).docx VIP
- 选择性必修二unit 2 bridging cultures.pptx VIP
- 54099_新媒体数据分析_PPT.ppt VIP
文档评论(0)