没有合适的资源?快使用搜索试试~ 我知道了~
基于java的网络聊天室---服务器端毕业设计.doc
0 下载量 87 浏览量
2023-07-06
05:07:21
上传
评论
收藏 369KB DOC 举报
温馨提示
试读
25页
基于java的网络聊天室---服务器端毕业设计.doc
资源推荐
资源详情
资源评论
目录
1 绪论 ...........................................................................2
1.1 背景及意义 ...............................................................1
1.2 研究现状 .................................................................1
2 系统分析 .......................................................................3
2.1 实现技术 .................................................................3
2.2 系统分析 .................................................................6
3 系统设计 .......................................................................7
3.1 系统功能结构 .............................................................7
3.2 系统业务流程 .............................................................8
3.3 系统实现原理 .............................................................8
3.4模块化设计 ...............................................................9
3.5 数据库设计 ..............................................................9
3.6开发环境与运行环境 ......................................................10
3.7 客户端结构 ..............................................................10
3.8 服务器端结构 ............................................................11
4 系统实现 ......................................................................11
4.1 新用户注册模块 ..........................................................11
4.2 登录模块 ................................................................13
4.3 消息通信模块:与显示的在线好友间通信 .....................................15
4.4 服务器端 ................................................................17
5 总结 ..........................................................................22
参考文献 ........................................................................23
致谢 ............................................................................23
1 绪论
1.1 背景及意义
网络通信在当今信息社会中起着不可或缺的作用,人们可以利用网络通信技术进行
即时的信息交流。比如 QQ 聊天工具,它就是利用网络通信技术开发的一款众所周知的
网络聊天工具。目前,信息交流是互联网提供的主要内容,网络通信系统有多重实现方
式,类似 ICQ 属于一种点对点的聊天系统;还有一种是基于 Socket 的集中式聊天系统,
这种聊天系统需要登录统一的聊天服务器。
当今主流的聊天工具有 QQ,ICQ , MSN Message 等,国内最热门的当属 QQ,腾讯 QQ
是由深圳市腾讯计算机系统公司开发的,基于 Internet 的即时寻呼软件。您可以使用 QQ
和好友用户进行交流、信息即时发送、即时回复、收发即时,功能全面。QQ 支持显示朋
友在线信息、即时传送信息、即时交谈、即时发送文件和网址。
网络聊天以成为上网族的一种普遍的休闲方式,可以毫不夸张的说,全国的网民中
没人不知道 QQ 聊天软件,所以,一款好的即时通信聊天软件成了上网的必备工具之一。
网上有很多的聊天软件可供网民们选择,各有不同的特点和长处,可满足不同人的各种
需求。
局域网聊天工具,是在局域网内部使用的,用户之间用来交流的一个工具,一般都
具有文本聊天和文件传输功能。局域网聊天软件因其使用简单,系统资源消耗少等优点,
成为各企事业单位等的局域网内广泛应用的软件之一。
1.2 研究现状
目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯 QQ、新浪 UC
等,国外有著名的 MSN 等。本人取最具代表性的 QQ 和 MSN 进行了一些研究,作为我开
发聊天系统的准备。
腾讯无疑是国内即时通讯市场的霸主,自从 99 年进入即时通讯领域并迅速占市场
之后,其在国内用户数量始终高居榜首,即使近几年面对微软 MSN 的强大攻势,腾讯 QQ
的时常占有率依然稳步增长。腾讯的成功与其对 QQ 的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯 QQ 运行时的各种细节。可以确
定腾讯 QQ 是以多服务器提供服务、服务器总控客户端、客户端之间 UDP 直连通信的。
并且在两个客户端之间不能建立直连的情况下,才由服务器进行中转通信。
其模型如图 1.1:
图 1.1 腾讯 QQ 服务器-客户端模型
与腾讯 QQ 不同,微软的 MSN Messenger 只使用了 TCP 作为传输层通信协议,所有客
户端与服务器进行连接,然后通过与服务器的 TCP 连接进行中转通信。
其模型如图 1.2:
图 1.2 MSN 服务器-客户端模型
腾讯使用的模型中,服务器主要处理客户端各种状态的控制,可以极大减轻服务器
的处理压力,但其内部协议和实现复杂度都较高。而 MSN Messenger 所有数据都要经过
服务器,服务器压力可想而知(难怪平时很少见到使用 MSN 进行语音视频聊天的)。
2 系统分析
2.1 实现技术
2.1.1 Java 语言
Java,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由 Sun 公司的
詹姆斯·高斯林(James Gosling)等人于 1990 年代初开发。它最初被命名为 Oak,目标
设置在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等
家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun 放弃
了该项计划。就在 Oak 几近失败之时,随着互联网的发展,Sun 看到了 Oak 在计算机网
络上的广阔应用前景,于是改造了 Oak,在 1995 年 5 月以“Java”的名称正式发布了。
Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
Java 编程语言的风格十分接近 C++语言,Java 继承了 C++ 语言面向对象技术的内
核,舍弃了 C++语言中容易引起错误的指针(以引用取代)、运算符重载(operator
overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被
引用的对象所占据的内存空间。在 Java SE 1.5 版本中 Java 又引入了泛型编程(Generic
Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java 不同于一般的编译运行计算机语言和解释执行计算机语言。它首先将源代码编
译成字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实
现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了 Java
程序的运行效率。但在 J2SE1.4.2 发布后,Java 的运行速度有了大幅提升。
与传统程序不同 Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以
万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力
量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微
软公司所倡导的注重精英和封闭式的模式完全不同。
Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、
解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java 语言有以下特点:
简单(Simple):指的是去除了 C/C++中较少使用或可能不安全的功能,例如指标,
运算子重载,多重继承等。
物件导向的(Object-oriented):利用 OOP 的三种基本特性:PIE(多型,继承,封装),
来设计出可重複使用的元件,使系统有弹性易于维护。
网路的(Network-Savvy):提供容易使用的 API 来撰写网路程式 。
直译式的(Interpreted):bytecode 在 JVM 上执行时,JIT 负责转换为机器码。
稳健的(Robust):捨弃了对记忆体的指标运作。
安全性(Secure):资源回收处理 (Garbage Collection)由 JVM 自行作记忆体管理,例
外处理 (Exception) 可预防突发错误的产生。
结构中立(Architecture Neutral):程式执行在虚拟机器上。
可携的(Portable): Write once, run anywhere 指的是由 JVM 与不同的作业系统沟通。
高效率的(High Performance):利用 HotSpot, JIT 技术改善效能。
多执行绪的(Multithreaded):Java 程序可发出多隻并行的轻量化行程。
动态的(Dynamic):Java 程式执行时动态的连结类别库。
Java 语言的优良特性使得 Java 应用具有无比的健壮性和可靠性,这也减少了应用
系统的维护费用。Java 对对象技术的全面支持和 Java 平台内嵌的 API 能缩短应用系统
的开发时间并降低成本。Java 的编译一次,到处可运行的特性使得它能够提供一个随处
可用的开放结构和在多平台之间传递信息的低成本方式。特别是 Java 企业应用编程接
口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的
类库。
2.1.2 Java 与 Internet
Java 语言取得成功的领域之一就是网络(其他语言)数页代码---->(Java)一条语
句。
TCP/IP(传输控制协议/网间协议)是 internet 的主要协议,定义了计算机和外
设进行通信所使用的规则(应用层,传输层,网络层,链路层)。大多数基于 internet 的应
用程序被看作 TCP/IP 协议的上一层, 如 : ftp, http, smtp, pop3, telnet, nntp 等。
IP 地址:TCP/IP 网络中的每台计算机都有唯一的地址--IP 地址。
在 Java 中,有一个用来存储 internet 地址的类叫 InterAddress。
Java 提供的网络功能有三大类: URL,Socket,Datagram。
1、URL 是三大功能中最高级的一种,通过 URL Java 程序可以直接送出或读入网络上
的数据。
2、Socket 是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通
信信道。
3、Datagram 是更低级的网络传输方式,它把数据的目的纪录在数据包中,然后直接放
在网络上。
2.1.3 Socket 编程
1)TCP/IP 协议
TP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议/网际协议的
缩写,TCP/IP 是当今网络互联的核心协议。
TCP/IP 协议是聊天工具在建立连接下使用的协议,该协议是网络中使用的通讯协议,
包括传输控制协议和网际协议,TCP/IP 协议是网络互连的标准协议,可使不同环境下不
同节点之间彼此通信,是连入互联网的所有计算机在网络上进行各种信息交换和传输所
必须采用的协议。
2)TCP/IP 协议进行传输数据传输的过程
应用程序为了传输数据会调用 TCP,将数据和对应的参数传给 TCP,将 TCP 数据
包封装在 IP 包内,通过网络送给目的 TCP。接收方 TCP 在接收到数据后通知上层应用
剩余24页未读,继续阅读
资源评论
Mmnnnbb123
- 粉丝: 697
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功