1、湖北大学知行学院本科毕业论文(设计)题 目 基于 JAVA的聊天室设计与实现 计算机与信息工程 系 计算机科学与技术 专业学 号 0811050002 学生姓名 万小龙 指导教师 尤新华 起讫日期 2011. 10 2012. 4 工作地点 湖北大学知行学院 I目 录绪论.11 课题总体介绍.21.1 项目开发的目的.21.2 项目开发的意义.22 总体 设计.32.1 应用需求分析.32.2 模块具 体分析.42.2.1 服务器端模块分析.42.2.2 客户端模块分析.42.2.3 数据库模块分析.42.3 聊天室 的具体实现.52.3.1 登录界面的实现.52.3.2 注册界面的实现.52
2、.3.3 聊天界面的实 现.52.3.4 服务器界面的实 现.62.3.5 服务器验证登录的实现.62.3.6 聊天 功能的 实现.63 聊天室的详细设计.73.1 开发环境的配置.73.2 开发的过程.73.3 聊天室功能 的测试.8结 论 .10参考 文献.11致 谢.12附 录.13II基于 JAVA 的聊天室设计与实现摘 要随着网络的快速发展,网络俨然已经成为了我们了解世界和关注世界各地新动态的一个主要途径了。因此伴随着网络而必然产生的一些软件也越来越多,而能够实现即时通信的聊天软件也是随之诞生,且深受用户们喜爱。而 MSN,ICQ,还有国内的 QQ 等大型聊天软件也成为了人们网络生活
3、中的一部分。本文中主要阐述的是 java 聊天室的设计过程,以及聊天功能的实现。前台采用的 java 语言采用 C/S 架构来设计聊天室 ,而后台则采用 SQL Server2005 创建的数据库和表格来管理用户的信息。然后利用这 2 种工具的结合来完成聊天室的设计 。【关键词】网络 聊天室 即时通信 JAVAIIIChat room Design with realization based on JAVAAbstractWith the rapid development of network, the network has become in a major way for us to
4、 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 peoples life for network.This article mainly
5、 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, usi
6、ng the combination of these two tools to complete the design of the chat room.【Key words】network Chat room Instant communication JAVA湖北大学知行学院本科毕业论文(设计)1绪论随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本系统利用 Java 实现基于 C/S 模式的聊天程序。聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。
7、服务器端的主要实现在特定端口上进行侦听,等待客户端连接;用户可以配置服务端的侦听端口,默认端口为 9999;向已经连接到服务端的用户发送系统消息。客户端的主要功能为:连接到已经开启服务的服务端;用户可以配置要连接的端口号;用户可以配置连接后显示的用户的账号;当服务器端开启的话,用户可以随时登录,用户可以向所有人或某一个人发送消息。从而客户与客户之间以及客户与服务器之间可以简单方便地进行通信。主要使用 Sun 公司提供 Java 语言、jdk 开发环境及套接字通信 socket 技术,并利用 MyEclipse来进行开发,来是实现对服务器端和客户端之间相互交流的功能。湖北大学知行学院本科毕业论文
8、(设计)21 课题总体介绍1.1 项目开发的目的本课题的研究主要目的是可以加深我们对 java 编程思想的理解,让我们养成一个良好的项目开发的编程习惯,同时也是对我们所学的 java 编程的一个综合提高。而对聊天室的开发也可以更好的理解 C/S 架构开发的原理,能够更加熟练的使用多线程、异常处理、Socket 编程、输入输出流的使用。1.2 项目开发的意义 根据当前网络的需求,网络聊天越来越受各种网民所青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。而本人也学习过 JAVA 语言,对网络编程也
9、较有兴趣,为了更好的考验自己对 JAVA 语言的掌握程度,本人就决定以Java 聊天室为毕业设计,希望通过这一次能进一步提高本人的网络开发编程的能力。湖北大学知行学院本科毕业论文(设计)32 总体设计2.1 应用需求分析利用 Java 实现基于 C/S 模式的聊天程序,聊天系统不外乎两个方面,服务器端和客户端。服务器端程序主要负责侦听客户端发来的消息,客户端需登录到服务端才可以实现正常的聊天功能。简单分析一下两个方面所要完成的任务,对设计这个程序来说,等于完成了一半。首先来看一下服务器端的任务:服务器端的主要功能如下:(1)在特定端口上进行侦听,等待客户端连接。(2)用户可以配置服务端的侦听端
10、口,默认端口为 9999。(3)向已经连接到服务端的用户发送系统消息。(4)可以启动和关闭服务器。以上就是服务器端最主要任务。不难看出,服务器端的任务并不复杂。客户端的主要功能如下:(1)连接到已经开启服务的服务端。(2)用户可以注册账号。(3)用户可以通过注册好的账号登陆聊天室。(4)用户可以向所有人或某一个人发送消息。相对服务器而言,客户端的任务也不很复杂,有了以上的简单分析,可以知道,解决上述问题,即完成了该聊天系统的核心。聊天室设计好了,同时还需要数据库的支持,数据库的功能就是对用户注册的账号和密码进行管理,当用户登录时可以进行验证。湖北大学知行学院本科毕业论文(设计)42.2 模块具
11、体分析模块分析示意图如图 2.1 所示:图 2.1 模块分析2.2.1 服务器端模块分析服务器与客户间通过套接口 Socket(TCP)连接。在 java 中使用套接口相当简单, Java API 为处理套接口的通信提供了一个类 .Socket,使得编写网络应用程序相对容易。服务器采用多线程以满足多用户的请求,并通过创建一个 ServerSocket 对象来监听来自客户的连接请求,默认端口为 8888,然后无限循环调用 accept()方法接受客户程序的连接。2.2.2 客户端模块分析客户通过 Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造对象流来建
12、立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的 Socket 对象。客户端然后向服务器发送消息,服务器收到来自客户的请求后,针对不同的消息处理请求。2.2.3 数据库模块分析数据库用于管理用户的信息,当用户在注册界面成功注册了账号,就存在数据库的用户表里面,当新用户注册时,将新账号与数据库中的账号比较来验证账号是否纯在,也可以验证账号密码是否正确。湖北大学知行学院本科毕业论文(设计)52.3 聊天室的具体实现2.3.1 登录界面的实现登陆界面如图 2.2 所示:图 2.2 聊天室的登陆界面该界面用到了 3个 Jlabel
13、,分别是“聊天室登录器” 、 “账号” 、 “密码” 。用到了 1个JTextFilet,1 个 JpasswordField,和 2 个 Jbuttton(登录和注册) 。然后用网格包布局来管理这些控件。当填写了正确的账号和密码后点击登录按钮可以进入聊天界面,错误则提示“用户名或密码错误”:点击注册按钮则可以进入注册账号的界面。2.3.2 注册界面的实现注册界面的实现如图 2.3 所示:图 2.3 注册界面该界面主要用的了 4 个 Jlabel 分别是 4 个填写文字的部分,然后一个 JtextField 和 2 个JpasswordField,用来填写要注册的账号和密码。这些控件被放入第一
14、个 Jpanel 中,然后放于Jframe 的居中部分。然后 2 个按钮放在了第二个 jpanel 中,放于 jframe 的南边。2.3.3 聊天界面的实现聊天界面的实现如图 2.4 所示:图 2.4 聊天界面湖北大学知行学院本科毕业论文(设计)6该界面的控件很少,用一个 JtextArea来显示用户们的聊天内容,该空间放在了居中部分。然后是在南边有一个 JtextField用来填写用户想说的话,然后点击唯一的 Jbutton(发送) ,就可以发送自己说的话了。2.3.4 服务器界面的实现服务器界面的实现如图 2.5 所示:图 2.5 服务器界面该界面只用到了 2个 Jbutton,用来启动
15、和关闭服务器。2.3.5 服务器验证登录的实现当用户点击了登录界面的登录按钮之后,用户填写的账号和密码会发送到服务器进行验证,如果账号密码正确,则向客户端发送登录成功的信息;如果账号密码不正确,则向客户端发送信息并以客户端为父窗口弹出子窗口提示说:“账号或密码错误! ”。2.3.6 聊天功能的实现用户在聊天界面点击发送按钮后,消息发送到服务器,服务器的消息进行分析,如果是私聊,分析出发送这和接收者后,将消息转发给接收者。如果是发送给所有人,就遍历管理服务器连接所有人线程的 hashmap,得到连接所有人的线程,将消息发送给所有人,而客户端则遍历管理所有人的聊天界面的 hashmap,得到所有人的聊天界面,将消息发送到所有人的界面上。