基于JAVA聊天室系统设计(带数据库)
摘要:本聊天室人机交互系统是采用C/S架构设计的JAVA语言编写的简易聊天系统。该聊天系统具有完整的会话功能,服务器具有侦听服务,转发聊天信息,响应用户下线,发送系统消息的功能。客户端具有请求登陆,请求下线,发送聊天信息,接收聊天信息,收到系统信息的功能。该聊天室由服务端和客户端组成,主要用到Socket通信的网络应用。
一.引言
信息技术的高速发展给人类生产,生活带来了广泛而深远的影响。“上网冲浪”、“数码相机”“PDA”、“彩屏手机”、“蓝牙技术”等新产品,新概念层出不穷,不断冲击着人们的视听。这些高科技成果为人们带来便捷、快乐的同时,也促进了人机交互技术的发展。人机交互是关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的科学。它主要研究人与计算机之间的信息交换,涉及计算机科学,心理学,认知科学等诸多学科,是信息技术的一个重要组成部分,并将继续对信息技术的发展产生巨大影响。
聊天室系统是一个非常典型的人机交互系统。在信息世界里,聊天工具的使用是非常频繁的,如MSN、QQ、校内通,之类的聊天工具许多人都正在使用。着些软件功能齐全,身受人们的喜爱,在此,我在这设计一个采用C/S架构设计的JAVA语言编写的简易聊天系统,它采用网络相关的类实现流Socket通信和数据包Socket。
一个实现Socket通信的网络应用程序,由一个服务器程序和一个客户端程序组成,两端都是Application应用程序。服务器端程序包含一个提供TCP连接服务的ServerSocket类对象和一个参与通信的Socket对象,客户端只包含一个参与通信的Socket对象。服务器的ServerSocket类对象提供TCP连接服务,连接成功后,实际进行通信的是服务端的Socket对象和客户端的Socket对象。
Socket通信流程说明如下:
C服务器端创建一个ServerSocket对象,指定端口号。
CServerSocket对象等候客户端的连接请求。
C客户端创建一个Socket对象,指定主机地址和端口号,向服务器大送连接请求。
C服务器端收到客户端请求,建立一条TCP连接,再创建一个Soicket对象与客户端的Socket对象进行通信。
C服务器端和客户端分别建立字节输入/输出流,进行数据传输准备。
C服务器端和客户端通过各自的字节输入流获得对方发送过来的数据,通过字节输出流向对方发送数据。
C一方决定结素通信,向对方发送结素信息,另一方收到结束信息后,双方分别关闭各自的TCP连接。
CServerSocket对象停止等候客户端连接请求。
二.系统功能介绍
本聊天系统具有完整的会话功能,服务器具有侦听服务,转发聊天信息,响应用户下线,发送系统消息的功能。客户端具有请求登陆,请求下线,发送聊天信息,接收聊天信息,收到系统信息的功能。
该聊天室采用C/S架构,由服务端和客户端组成。
服务器具有以下功能。
(1).启动服务,建立侦听,接受客户端连接。
(2).接受、分析、转发聊天信息。
(3).向客户端发送消息。
(4).关闭服务,并向客户端发送服务器关闭消息。
为实现以上四种聊天服务器功能,需要建立以下四个类。
(1).用户信息链表类:该类提供一个链表数据结构及对一组链表的操作函数,用于保存用户信息;它提供了链表的添加,删除,查找的基本功能。
(2).服务器主框架类:主框架类不仅提供了服务器的人机交互界面,而且在其中实现了用户登陆的功能。
(3).服务器的侦听线程类:该类的父类是Thread类,它负责侦听客户端的连接,并实现响应用户登陆的功能。
(4).服务器接收线程类:接收线程的父类是Thread类,它负责接收客户端的信息,并对信息类型做出判断和响应。比如,当它收到客户端下线信息,就会调用相应的函数,响应用户下线的请求。
聊天客户端必须具有以下功能。
(1).连接服务器,发送用户登陆请求。
(2).向服务器发送聊天信息。
(3).接收服务器转发的了信息。
(4)接受服务器发送的系统消息。
(5).响应服务器关闭通知消息。
为实现以上五种聊天客户端功能,需要建立一下两个类。
(1).客户端主框架类:客户端主框架除了完成与用户的交互作用外,它还要实现用户的登陆和下线功能,以及聊天信息的发送功能。
(2).客户端接受线程类:接受线程类的父类为Thread类,在该类中实现了信息接收的功能。该线程一经启动,就一直处于接收信息的状态,直到用户下线或服务器关闭。其中响应服务器关闭的功能也是在接收线程中实现的。
三.系统详细设计
*聊天室服务器的实现
聊天室服务器类载入fuwuqi包中。需要有四个类来实现,即用户信息链表类,服务器主框架类,服务器侦听线程类和服务器接收线程类
*聊天客户端的实现
聊天客户端载入kehuduan包中。需要有两个类来实现,即客户端主框架类的实现
和客户端接收线程类。
1.客户端主框架类的实现
客户端主框架类需要实现人机交互功能、用户登陆功能、用户下线功能和信息发送功能。
(1)实现人机交互功能。
为工程添加客户端主框价类,命名为ClientFrame,在ClientFrame类的构造函数中,完成为客户端控件的添加,控件位置的调整,控件的初始状态的设定以及控件侦听函数的添加。(2)实现用户登陆功能
为该类添加Login函数,在其中完成用户登陆功能。在Login函数中,首先创建侦听套接字,连接得到套接字的输入输出流,其次创建并启动接受线程,最后对界面控件进行调整,并显示提示信息。
(3)实现用户下线功能