福州大学工程技术学院
毕 业 论 文
姓 名: 学 号:
学 院:
专 业:
论文题目: 使用 Java 开发一个网上聊天工具
指导教师:
2013 年 5 月
摘 要
随着网络越来越发达的脚步,人们对网络的依赖性也越来越高,越来越
离不开网络,通信科技逐步发展起来,便产生了越来越多的聊天工具,例如,
MSN、QQ。基于 Java 网络编程的强大功能,本次毕业设计是使用 Java 编写
一个聊天系统。
本系统的聊天工具与大多数由客户端程序和服务器程序外加服务器端用
于存放客户数据的数据库组成的不同,本系统是采用客户机/服务器架构模
式通过 Java 提供的 Soket 类来连接客户机和服务器并使客户机和服务器之
间相互通信,由于聊天是多点对多点的,而 Java 提供的多线程功能刚好满
足这个要求,用多线程可完成多点对多点的聊天,数据库管理系统用 SQL
Server2000 完成并通过 JDBC-ODBC 桥访问数据库。
本系统建立在 JAVA 平台上,系统的设计使用了面向对象技术和面向对
象的设计原则。系统采用 C/S 结构,客户端与客户端以及客户端与服务器端
之间通过 Socket 传送消息。使用 JAVA 语言编写,开发工具采用 Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时
运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利
用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,
对新用户的注册,发送消息、接受消息等等功能。
关键字:多线程 ;客户机/服务器 ;JAVA ; Socket ; Eclipse ; TCP/IP
目 录
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
3.3.3 用户注册流程 ......................................................................................15
3.3.4 用户登陆流程 .......................................................................................16
3.3.5 用户聊天流程图 ...................................................................................17
3.3.6 用户退出流程 .......................................................................................18
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.1 用户注册 ..............................................................................................28
4.3.2 用户登录 ..............................................................................................35
4.3.3 聊天室 ..................................................................................................38
结束语..........................................................................................................................................45
致谢 ..............................................................................................................................................46
第 1 页
1 绪论
1.1 国内外聊天系统的研究现状
目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯
QQ、新浪 UC、网易泡泡等,国外有著名的 MSN 以及跨平台 Gaim 等。本
人取最具代表性的 QQ 和 MSN 进行了一些研究,作为我开发聊天系统的准
备。
腾讯无疑是国内即时通讯市场的霸主,自从 99 年进入即时通讯领域并
迅速占市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软
MSN 的强大攻势,腾讯 QQ 的时常占有率依然稳步增长。腾讯的成功与其
对 QQ 的不断创新和完善是分不开的。
参考了许多网络上的资料,以及自己通过观察腾讯 QQ 运行时的各种细
节。可以确定腾讯 QQ 是以多服务器提供服务、服务器总控客户端、客户端
之间 UDP 直连通信的。并且在两个客户端之间不能建立直连的情况下,才
由服务器进行中转通信。
其模型如图 1-1
图 1-1 腾讯 QQ 服务器-客户端模型 1
与腾讯 QQ 不同,微软的 MSN Messenger 只使用了 TCP 作为传输层通