一、任务简要描述
移动互联网技术的广泛应用为人们提供了非常便捷的沟通方式。QQ、微信和微博等是便携式聊天系统的典型代表,它们的功能非常强大。
本系统利用TCP/IP协议的Socket和ServerSocket类,实现基于C/S模式的简易聊天室。该聊天室包括服务端和客户端两部分,服务端是客户端发送消息的中转站;客户端之间可以直接通信,也可以与服务器通信。聊天结束后客户端断开与服务端的连接,服务器也可以停止信息中转服务。
二、系统需求分析
本系统采用C/S软件架构,服务器端负责监听客户端发来的消息,并把消息转发到对应的客户端;客户端可以向指定的人发送消息,并接受其他客户端发来的信息。服务器端的功能如图2-1所示,服务端的主界面如图2-2所示;客户端的功能如图2-3所示,客户端的主界面如图2-4所示。
服务器端的功能 图2-1
服务器端主界面 图2-2
客户端的功能 图2-3
客户端的主界面 图2-4
2.1功能描述——服务器端
1、信息处理
①服务器作为客户端之间发送消息的中转站,需要接受并转发客 户端之间的信息。
②服务器也可以向指定的客户端发送系统信息,也可以向所有客 户端发送信息。
③跟踪用户登录情况,并更新用户数量。
2、服务器设置
①服务器端设置服务器的IP地址和通信的端口号,便于客户端与服务器建立连接。
②启动服务器准备进行信息中转与发送。
③停止服务器服务,客户之间不能通信。
2.2功能描述——客户端
1、信息处理
①接受服务器和其他客户端向本地发送的信息。
②本地客户端向服务器和其他客户端发送信息。
2、客户端设置
①客户端需要连接服务器的IP地址和端口号。
②启动客户端,根据服务器的IP地址和端口号登录到指定的服务器。
③停止客户端,注销与服务器的连接,停止服务器的通信。
三、系统设计
3.1类及UML设计——服务器端
根据服务器端功能需要,服务器端包括6个源文件,它们是ServerRoom.java、ServerReceive.java、ServerListen.java、Node.java、UserList.java和ServerPortConfig.java,下面分别介绍 它们的功能及UML图。
1、ServerRoom.java
该文件包含一个publicServer类,该类继承JFrame实现ActionListener接口,封装了服务器界面、服务器端对用户上线和下线的监听以及利用ServerReceive类来实现服务器端的消息收发处理功能,启动服务器的main()方法在该类中。ServerPort是一个静态成员,设置服务器端口号,initServer()方法初始化服务器端的界面,startServer()方法启动服务stopServer()方法停止服务,sendStopToAll()发送服务器停止服务消息给所有客户端,sendMSGToAll()给所有客户端发送信息,sendServerMSGToClient()方法把服务器的消息发送给客户端,actionPerformed()实现ActionListen接口中的方法,点击设置、端口、启动服务、停止服务、退出系统以及发送等按钮后激活该方法。UML如图3-1所示。
ServerRoom类图 图3-1
信息发送给服务器和在线用户,run()实现Runnable接口中的方法,用来向所有人或者指定用户发送信息,并且用户下线后更新用户列表。UML如图3-2