目 录
绪论............................................................................................................................................1
1 课题总体介绍.....................................................................................................................2
1.1 项目开发的目的.................................................................................................................2
1.2 项目开发的意义.................................................................................................................2
2 总体设计.............................................................................................................................3
2.1 应用需求分析.....................................................................................................................3
2.2 模块具体分析.....................................................................................................................4
2.2.1 服务器端模块分析..........................................................................................................4
2.2.2 客户端模块分析..............................................................................................................4
2.2.3 数据库模块分析..............................................................................................................4
2.3 聊天室的具体实现.............................................................................................................5
2.3.1 登录界面的实现..............................................................................................................5
2.3.2 注册界面的实现...............................................................................................................5
2.3.3 聊天界面的实现..............................................................................................................5
2.3.4 服务器界面的实现...........................................................................................................6
2.3.5 服务器验证登录的实现..................................................................................................6
2.3.6 聊天功能的实现..............................................................................................................6
3 聊天室的详细设计.............................................................................................................7
3.1 开发环境的配置.................................................................................................................7
3.2 开发的过程.........................................................................................................................7
3.3 聊天室功能的测试.............................................................................................................8
结 论........................................................................................................................................10
参考文献.................................................................................................................................. 11
致 谢........................................................................................................................................12
附 录........................................................................................................................................13
基于 JAVA 的聊天室设计与实现
摘 要
随着网络的快速发展,网络俨然已经成为了我们了解世界和关注世界各地新动态的一个主要途
径了。因此伴随着网络而必然产生的一些软件也越来越多,而能够实现即时通信的聊天软件也是随
之诞生,且深受用户们喜爱。而 MSN,ICQ,还有国内的 QQ 等大型聊天软件也成为了人们网络生活
中的一部分。
本文中主要阐述的是 java 聊天室的设计过程,以及聊天功能的实现。前台采用的 java 语言采用
C/S 架构来设计聊天室,而后台则采用 SQL Server2005 创建的数据库和表格来管理用户的信息。然
后利用这 2 种工具的结合来完成聊天室的设计。
【关键词】网络 聊天室 即时通信 JAVA
Chat room Design with realization based on JAVA
Abstract
With the rapid development of network, the network has become in a major way for us to understand
the world . So with the network and inevitable has some software is also more and more, and can realize
instant communication chat software is also comes and loved by uses. So MSN, ICQ, QQ and other large
chat software has become a part of the people’s life for network.
This article mainly elaborated in the chat room of the design process is Java, and the realization of the
function of chat. The front desk of the Java language using C/S architecture to design a chat room, and the
back desk, using the database and SQL Server2005 create form to manage customer information. Finally,
using the combination of these two tools to complete the design of the chat room.
【Key words】network Chat room Instant communication
JAVA
湖北大学知行学院本科毕业论文(设计)
绪论
随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最
常见,最直接的网上交流的方式。
本系统利用 Java 实现基于 C/S 模式的聊天程序。聊天室共分为服务器端和客户端两部分,服务
器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。服
务器端的主要实现在特定端口上进行侦听,等待客户端连接;用户可以配置服务端的侦听端口,默
认端口为 9999;向已经连接到服务端的用户发送系统消息。客户端的主要功能为:连接到已经开启
服务的服务端;用户可以配置要连接的端口号;用户可以配置连接后显示的用户的账号;当服务器
端开启的话,用户可以随时登录,用户可以向所有人或某一个人发送消息。从而客户与客户之间以
及客户与服务器之间可以简单方便地进行通信。
主要使用 Sun 公司提供 Java 语言、jdk 开发环境及套接字通信 socket 技术,并利用 MyEclipse
来进行开发,来是实现对服务器端和客户端之间相互交流的功能。
1
湖北大学知行学院本科毕业论文(设计)
1 课题总体介绍
1.1 项目开发的目的
用。1.2 项目开发的意义
本课题的研究主要目的是可以加深我们对 java 编程思想的理解,让我们养成一个良好的项目开
发的编程习惯,同时也是对我们所学的 java 编程的一个综合提高。而对聊天室的开发也可以更好的
理解 C/S 架构开发的原理,能够更加熟练的使用多线程、异常处理、Socket 编程、输入输出流的使
根据当前网络的需求,网络聊天越来越受各种网民所青睐。因此开发网络聊天是相当有必要,
而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访
客透过聊天室实时的互相交流。而本人也学习过 JAVA 语言,对网络编程也较有兴趣,为了更好的
考验自己对 JAVA 语言的掌握程度,本人就决定以《Java 聊天室》为毕业设计,希望通过这一次能
进一步提高本人的网络开发编程的能力。
2
湖北大学知行学院本科毕业论文(设计)
2 总体设计
2.1 应用需求分析
利用 Java 实现基于 C/S 模式的聊天程序,聊天系统不外乎两个方面,服务器端和客户端。服务
器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。简
单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下服务
器端的任务:
服务器端的主要功能如下:
(1)在特定端口上进行侦听,等待客户端连接。
(2)用户可以配置服务端的侦听端口,默认端口为 9999。
(3)向已经连接到服务端的用户发送系统消息。
(4)可以启动和关闭服务器。
以上就是服务器端最主要任务。不难看出,服务器端的任务并不复杂。
客户端的主要功能如下:
(1)连接到已经开启服务的服务端。
(2)用户可以注册账号。
(3)用户可以通过注册好的账号登陆聊天室。
(4)用户可以向所有人或某一个人发送消息。
相对服务器而言,客户端的任务也不很复杂,有了以上的简单分析,可以知道,解决上述问题,
即完成了该聊天系统的核心。
聊天室设计好了,同时还需要数据库的支持,数据库的功能就是对用户注册的账号和密码进行
管理,当用户登录时可以进行验证。
3
2.2 模块具体分析
模块分析示意图如图 2.1 所示:
湖北大学知行学院本科毕业论文(设计)
2.2.1 服务器端模块分析
图 2.1 模块分析
服务器与客户间通过套接口 Socket(TCP)连接。在 java 中使用套接口相当简单,Java API 为处理
套接口的通信提供了一个类 java.net.Socket,使得编写网络应用程序相对容易。服务器采用多线程以
满足多用户的请求,并通过创建一个 ServerSocket 对象来监听来自客户的连接请求,默认端口为
8888,然后无限循环调用 accept()方法接受客户程序的连接。
2.2.2 客户端模块分析
客户通过 Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造对象流来建立
输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器
accept()方法返回一个新建的 Socket 对象。客户端然后向服务器发送消息,服务器收到来自客户的请
求后,针对不同的消息处理请求。
2.2.3 数据库模块分析
数据库用于管理用户的信息,当用户在注册界面成功注册了账号,就存在数据库的用户表里面,
当新用户注册时,将新账号与数据库中的账号比较来验证账号是否纯在,也可以验证账号密码是否
正确。
4
2.3 聊天室的具体实现
2.3.1 登录界面的实现
登陆界面如图 2.2 所示:
湖北大学知行学院本科毕业论文(设计)
图 2.2 聊天室的登陆界面
该界面用到了 3 个 Jlabel,分别是“聊天室登录器”、“账号”、“密码”。用到了 1 个 JTextFilet,
1 个 JpasswordField,和 2 个 Jbuttton(登录和注册)。然后用网格包布局来管理这些控件。当填写了
正确的账号和密码后点击登录按钮可以进入聊天界面,错误则提示“用户名或密码错误”:点击注册
按钮则可以进入注册账号的界面。
2.3.2 注册界面的实现
注册界面的实现如图 2.3 所示:
图 2.3 注册界面
该 界 面 主 要 用 的 了 4 个 Jlabel 分 别 是 4 个 填 写 文 字 的 部 分 , 然 后 一 个 JtextField 和 2 个
JpasswordField,用来填写要注册的账号和密码。这些控件被放入第一个 Jpanel 中,然后放于 Jframe
的居中部分。然后 2 个按钮放在了第二个 jpanel 中,放于 jframe 的南边。
2.3.3 聊天界面的实现
聊天界面的实现如图 2.4 所示:
图 2.4 聊天界面
5