JAVA聊天室附完整代码

  • 格式:pdf
  • 大小:557.66 KB
  • 文档页数:51

下载文档原格式

  / 51
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)聊天功能:可以实时接收和发送信息,并能支持公聊和私聊的的方式, 能够查看聊天记录,聊天过程中能对字体、表情等进行设定等。
(2)用户功能:可以随时注册和登录及注销,并能选择性加好友和删除好友 以及查看对方的开放信息,还能看到对方的登录状态。
(3)文件传输功能:用户可以共享资源,能发送及接收文件。 (4)保密功能:用户可以设定自己的保密状态,使某些信息对于其他用户是 不可见的。 (5)系统稳定:客户端与服务端的连接稳定,不出现或者少出现连接不上的 情况。
Thread
ClientReceive - socket: Socket -output:ObjectOutputStream -input:ObjectInputStream +ClientReceive(Socket,ObjectOutputStream,Object InputStream,JComboBox,JTextArea,JTextField )
功能描述:用户在聊天的过程中可以选择相应的心情来表达自己的情感。 (6) 系统消息:
功能描述:服务端正常运行的过程中,在聊天室的每一个用户都能接收服务 器端发送的信息提示信息。 (7) 用户的状态.
功能描述:每一个客户端用户都可以实时看到目前其他在线用户的状态。 (8) 用户注销:
功能描述:用户可以注销自己的账号,并重新登记登录名和地址。 (9) 用户退出:
(1) 聊天室服务端模块图:
聊天室服务端




退





wenku.baidu.com
















1息
端口服务:输入要侦听的端口,默认为 8888; 启动服务:启动服务器,并开始在设置的端口中侦听,客户端用户可以登录 并开始聊天; 停止服务:关闭服务器,侦听结束。客户端用户不能再聊天; 发送系统消息:服务器端给所有人或者个别用户发送消息。 消息显示:可以显示所有用户的聊天记录,和上线、下线信息。 退出服务器:退出程序,并停止服务;
7、选择登录进入聊天室并可以开始跟所有人或者个别其他用户聊天,其中可以 选择心情等;
7
8、在服务端也可以选择给所有人或者个别用户发送消息;
8
注意:客户端只有在服务端开启的情况下才能正常聊天。 9、多人聊天的服务器端与客户端情况
9
代码如下:
package liaotian;
/** * 用户链表 */ public class UserLinkList {
人们日常生活中越来越多地使用聊天室这项应用来为自己的工作和学习服 务。一个操作简单,界面友好、运行稳定的聊天室对于小型局域网的用户可以起 到很好的交流作用。所谓聊天室就是一个可以让许多用户同时互相通信的网上园 地,个人用户可以通过聊天室将自己融入整个主流社会中。
根据目前使用聊天室的用户需求显示,用户对于聊天室主要有以下几点要 求:
二、设计思路分析
聊天室是一项进行文本交互的软件,应用广泛,并且实用性强的一个非常典 型的人机交互系统。在信息世界里,聊天工具的使用是非常频繁的,如 MSN、 QQ、校内通之类的聊天工具许多人都正在使用。此次设计的聊天室系统主要针 对文本信息的传送和接收,不能像 QQ 一样进行图片、音频、视频等文件的传输。 虽然其功能简单,但是在开发技术和过程中,能够充分学习和使用 JAVA 的技术, 进一步培养了面向对象程序设计的思想,加深对面向对象程序设计四大特性的理 解。
据索引查找用户这 5 个方法。 (7)Help.java:服务端程序的帮助类。
2、聊天室客户端设计:
JFrame
ActionListener
ChatClient -port:public static in -serverSocket:ServerSocket -messageShow:JTextArea -userLinkList:UserLinkList -showStatus:JTextField + ChatClient():public +init():public void +Connect():public void +DisConnect():public void +SendMessage():public void
专业课程设计 I
基于 JAVA 的聊天室设计与实现
一、课题内容和要求
基于网络的文本交互软件的设计和实现,设计和实现一个简单的基于网络的 文本消息发送和接收软件。基本要求:该软件能实现文本消息发送和接收功能。 提高要求(1):支持以多播方式发送文本消息,提高要求(2):性能稳定,界面 友好。按课程设计报告的要求写出详细的设计和实现报告。
三、概要设计
1、聊天室的简要功能介绍 该简易聊天室是为许多喜爱聊天的用户开发设计的,和许多大型的网络聊天
室相比该小聊天室功能比较简单,但能实现基本的聊天功能,点对多、点对点聊 天和基本的用户功能,登录、注销、查看在线用户等。 (1) 用户设置:
功能描述:用户自定义自己的登录名,成功设置后,服务端能接收到新设置
五、测试数据及其结果分析
1、首先运行 ChatServer 工程文件,会出现如下画面
2、选择端口设置,可以设置您要侦听的端口号,不设置将默认端口号为 8888;
5
3、选择启动服务,服务器开始在您刚才设置的端口中侦听; 4、运行 ChatClient 工程文件,打开如下画面
6
5、选择用户设置可以设置自己的登录名 6、选择连接设置可以设置您的 IP 地址和端口号
的用户名;
(2) 登录功能: 功能描述:在服务端开启的情况下,用户可以以自己自定义或者默认的登录
名和登录地址端口登录到客户端,并能在服务器端显示登录状态; (3) 公聊:
功能描述:用户在聊天室中可以选择与“所有人”聊天,聊天室中的其他在 线用户可以正常接收并正确显示公聊消息。 (4) 私聊:
功能描述:用户可以选择与聊天室的在线用户列表中的其他用户聊天。双方 的聊天记录对于聊天室的其他用户是不可见的。 (5) 聊天心情:
Thread
ServerListen - server: ServerSocket - userLinkList :UserLinkList - isStop: public Boolean S+eSrevrevreLrLisitsetnen(ServerSocket,JComboBox,JTextAre -a,sJeTrevxetrF: iSeeldrv,UersSeroLciknektList) - userLinkList :UserLinkList -SeisrSvteorpR:epcueibvleic Boolean +-tSexetravreeraL:JisTteexnt(ASerervaerSocket,JComboBox,JTextAre a- ,uJsTeerxLtFinikelLdi,sUt s:UersLeirnLkiLnkisLt)ist - isStop: public Boolean +ServerListen(ServerSocket,JComboBox,JTextAre 3a,JTextField,UserLinkList)
上。
(4)PortConf.java:该类继承自 JDialog,是用户对服务器端侦听端口进行修 改配置的类。
(5)Node.java:用户链表的节点类,定义了链表中的用户。该类与前面所讲 的链表节点 Node 类的功能相当。
(6)UserLinkList.java:用户链表节点的具体实现类。该类通过构造函数构造 用户链表,定义了添加用户,删除用户、返回用户数、根据用户名查找用户、根
(2)聊天室客户端模块图:
聊天室客户端



发送

退



接收





聊天




消息

用户设置:用户可以设置自己的用户名进行聊天; 连接设置:用户可以设置自己的服务器的 IP 地址和端口号,默认的连接地址为: 127.0.0.1:8888; 用户登录:只能在聊天室服务端已开启的情况下,用户才能登录,用户登录之后 才能开始聊天,登录后不能再修改用户设置和连接设置; 用户注销:退出聊天,可以继续修改用户设置和连接设置; 发送和接收聊天信息:用户可以给所有人或者个别用户发送信息,并能看到其他 用户发送给自己或所有人的消息; 退出:关闭所有聊天并退出客户端。
功能描述:用户可以在正常情况下退出聊天室。 (10) 服务端控制:
功能描述:只有在服务端开启的情况下,用户才能登陆成功和聊天;用户设 置的地址端口也必须与服务端的侦听端口一致,否则不能登录。 2、模块描述
本聊天室分为聊天室服务端和聊天室客户端,服务端与客户端之间通过套接 口 Socket(TCP)连接。在 java 中使用套接口相当简单,Java API 为处理套接口的 通信提供了一个类 java.net.Socket.,使得编写网络应用程序相对容易.服务器采用 多线程以满足多用户的请求,通过 JDBC 与后台数据库连接,并通过创建一个 ServerSocket 对象来监听来自客户的连接请求,默认 IP 地址为:127.0.0.1 默认端 口为 8888。
Node root; Node pointer; int count; /**
* 构造用户链表 */ public UserLinkList(){
(2)ServerListen.java:该类实现服务端用户上线与下线的侦听。该类对用户 上线下线的侦听是通过调用用户链表类(UserLinkList)来实现的,当用户上线 与下线情况发生变化时,该类会对主类的界面进行相应的修改。
(3)ServerReceive.java:该类是实现服务器端的消息的收发的类。该类分别 定义了向某用户及所有人发送消息的方法,发送的消息会显示在主界面类的界面
2
(3) 流程图
聊天室服务器
端口服务 设置侦听端口
默认端口:8888
启动服务
聊天 退出
登录
用户设置 设置用户名 默认连接地址或用户名
设置 IP 地址和端口
聊天室客户端 连接设置
四、详细设计
1、聊天室服务器端设计:
JFrame
ActionListener
ChatServer -port:public static in -serverSocket:ServerSocket -messageShow:JTextArea -userLinkList:UserLinkList -showStatus:JTextField + ChatServer():public +init():public void +startService():public void +stopService():public void +sendStopToAll():public void +sendMsgToAll(String):public void + sendSystemMessage():public void
4
聊天室客户端主要包括 5 个文件,它们的功能如下: (1)ChatClient.java:包含名为 ChatClient 的 public 类,其主要功能为定义客 户端的界面,添加事件侦听与事件处理。该类定义了 Connect()与 DisConnect() 方法实现与服务器的连接与断开连接。当登录到指定的服务器时,调用 ClientReceive 类实现消息收发,同时该类还定义了 SendMessage()方法来向其 他用户发送带有表情的消息或者悄悄话。 (2)ClientReceive.java:该类是实现服务器端与客户端消息收发的类。 (3)ConnectConf.java:该类继承自 JDialog,是用户对所要连接的服务器 IP 及侦听端口进行修改配置的类。 (4)UserConf.java:该类继承自 JDialog,是用户对连接到服务器所显示的用 户名进行修改配置的类。 (5)Help.java:客户端程序的帮助类。
聊天室服务端主要包括 7 个文件,它们的功能如下: (1)ChatServer.java:包含名为 ChatServer 的 public 类,其主要功能为定义
服务器端的界面,添加事件侦听与事件处理。调用 ServerListen 类来实现服务端 用户上线与下线的侦听,调用 ServerReceive 类来实现服务器端的消息的收发。

相关主题