基于JAVA实现的简易聊天室

Schoolleave

发布日期: 2019-03-27 22:25:01 浏览量: 1927
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、设计目的

信息技术的高速发展给人类生产,生活带来了广泛而深远的影响。“上网冲浪”、“数码相机”“PDA”、“彩屏手机”、“蓝牙技术”等新产品,新概念层出不穷,不断冲击着人们的视听。这些高科技成果为人们带来便捷、快乐的同时,也促进了人机交互技术的发展。人机交互是关于设计、评价和实现供人们使用的交互式计算机系统,并围绕相关的主要现象进行研究的科学。它主要研究人与计算机之间的信息交换,涉及计算机科学,心理学,认知科学等诸多学科,是信息技术的一个重要组成部分,并将继续对信息技术的发展产生巨大影响。

聊天室是一项应用广泛,并且实用性强的一个非常典型的人机交互系统。在信息世界里,聊天工具的使用是非常频繁的,如MSN、QQ、校内通,之类的聊天工具许多人都正在使用。此次设计的聊天室系统虽然其功能简单,但是在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计四大特性的理解。

二、需求分析

人们日常生活中越来越多地使用聊天室这项应用来为自己的工作和学习服务。一个操作简单,界面友好、运行稳定的聊天室对于小型局域网的用户可以起到很好的交流作用。所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过聊天室将自己融入整个主流社会中。

根据目前使用聊天室的用户需求显示,用户对于聊天室主要有以下几点要求:

  • 聊天功能:可以实时接收和发送信息,并能支持公聊和私聊的的方式,能够查看聊天记录,聊天过程中能对字体、表情等进行设定等

  • 用户功能:可以随时注册和登录及注销,并能选择性加好友和删除好友以及查看对方的开放信息,还能看到对方的登录状态

  • 文件传输功能:用户可以共享资源,能发送及接收文件

  • 保密功能:用户可以设定自己的保密状态,使某些信息对于其他用户是不可见的

  • 系统稳定:客户端与服务端的连接稳定,不出现或者少出现连接不上的情况

该简易聊天室是为许多喜爱聊天的用户开发设计的,和许多大型的网络聊天室相比该小聊天室功能比较简单,但能实现基本的聊天功能,点对多、点对点聊天和基本的用户功能,登录、注销、查看在线用户等。

三、软件功能描述

3.1 用户设置

功能描述:用户自定义自己的登录名,成功设置后,服务端能接收到新设置的用户名;

3.2 登录功能

功能描述:在服务端开启的情况下,用户可以以自己自定义或者默认的登录名和登录地址端口登录到客户端,并能在服务器端显示登录状态;

3.3 公聊

功能描述:用户在聊天室中可以选择与“所有人”聊天,聊天室中的其他在线用户可以正常接收并正确显示公聊消息。

3.4 私聊

功能描述:用户可以选择与聊天室的在线用户列表中的其他用户聊天。双方的聊天记录对于聊天室的其他用户是不可见的。

3.5 聊天心情

功能描述:用户在聊天的过程中可以选择相应的心情来表达自己的情感。

3.6 系统消息

功能描述:服务端正常运行的过程中,在聊天室的每一个用户都能接收服务器端发送的信息提示信息。

3.7 用户的状态

功能描述:每一个客户端用户都可以实时看到目前其他在线用户的状态。

3.8 用户注销

功能描述:用户可以注销自己的账号,并重新登记登录名和地址。

3.9 用户退出

功能描述:用户可以在正常情况下退出聊天室。

3.10 服务端控制

功能描述:只有在服务端开启的情况下,用户才能登陆成功和聊天;用户设置的地址端口也必须与服务端的侦听端口一致,否则不能登录。

四、主要模块描述及流程图

4.1 模块描述

本聊天室分为聊天室服务端和聊天室客户端,服务端与客户端之间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类java.net.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认IP地址为:127.0.0.1默认端口为8888。

聊天室服务端模块图

  • 端口服务:输入要侦听的端口,默认为 8888

  • 启动服务:启动服务器,并开始在设置的端口中侦听,客户端用户可以登录并开始聊天

  • 停止服务:关闭服务器,侦听结束。客户端用户不能再聊天

  • 发送系统消息:服务器端给所有人或者个别用户发送消息

  • 消息显示:可以显示所有用户的聊天记录,和上线、下线信息

  • 退出服务器:退出程序,并停止服务

聊天室客户端模块图

  • 用户设置:用户可以设置自己的用户名进行聊天

  • 连接设置:用户可以设置自己的服务器的IP地址和端口号,默认的连接地址为:127.0.0.1:8888

  • 用户登录:只能在聊天室服务端已开启的情况下,用户才能登录,用户登录之后才能开始聊天,登录后不能再修改用户设置和连接设置

  • 用户注销:退出聊天,可以继续修改用户设置和连接设置

  • 发送和接收聊天信息:用户可以给所有人或者个别用户发送信息,并能看到其他用户发送给自己或所有人的消息

  • 退出:关闭所有聊天并退出客户端

4.2 流程图

五、主要类UML关系图

5.1 聊天室服务器端设计

聊天室服务端主要包括 7 个文件,它们的功能如下:

  • ChatServer.java:包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用ServerListen类来实现服务端用户上线与下线的侦听,调用ServerReceive类来实现服务器端的消息的收发

  • ServerListen.java:该类实现服务端用户上线与下线的侦听。该类对用户上线下线的侦听是通过调用用户链表类(UserLinkList)来实现的,当用户上线与下线情况发生变化时,该类会对主类的界面进行相应的修改

  • ServerReceive.java:该类是实现服务器端的消息的收发的类。该类分别定义了向某用户及所有人发送消息的方法,发送的消息会显示在主界面类的界面上

  • PortConf.java:该类继承自JDialog,是用户对服务器端侦听端口进行修改配置的类

  • Node.java:用户链表的节点类,定义了链表中的用户。该类与前面所讲的链表节点Node类的功能相当

  • UserLinkList.java:用户链表节点的具体实现类。该类通过构造函数构造用户链表,定义了添加用户,删除用户、返回用户数、根据用户名查找用户、根据索引查找用户这5个方法

  • Help.java:服务端程序的帮助类

5.2 聊天室客户端设计

聊天室客户端主要包括5个文件,它们的功能如下:

  • ChatClient.java:包含名为ChatClient的public类,其主要功能为定义客户端的界面,添加事件侦听与事件处理。该类定义了Connect()与DisConnect()方法实现与服务器的连接与断开连接。当登录到指定的服务器时,调用ClientReceive类实现消息收发,同时该类还定义了SendMessage()方法来向其他用户发送带有表情的消息或者悄悄话

  • ClientReceive.java:该类是实现服务器端与客户端消息收发的类

  • ConnectConf.java:该类继承自JDialog,是用户对所要连接的服务器IP及侦听端口进行修改配置的类

  • UserConf.java:该类继承自JDialog,是用户对连接到服务器所显示的用户名进行修改配置的类

  • Help.java:客户端程序的帮助类

六、软件使用方法和操作步骤

首先运行ChatServer工程文件,会出现如下画面

选择端口设置,可以设置您要侦听的端口号,不设置将默认端口号为8888

选择启动服务,服务器开始在您刚才设置的端口中侦听

运行ChatClient工程文件,打开如下画面

选择用户设置可以设置自己的登录名

选择连接设置可以设置您的IP地址和端口号

选择登录进入聊天室并可以开始跟所有人或者个别其他用户聊天,其中可以选择心情等

在服务端也可以选择给所有人或者个别用户发送消息

注意:客户端只有在服务端开启的情况下才能正常聊天

上传的附件 cloud_download 基于JAVA实现的简易聊天室.7z ( 1.66mb, 45次下载 )
error_outline 下载需要13点积分

发送私信

人生就像马拉松,获胜的关键不在于瞬间的爆发

8
文章数
20
评论数
最近文章
eject