`2020-12-30 18:05:40 星期三`

------------

## 202012G09

------------

# [ChatRoom](http://39.108.133.138:3000/weiyong/202012G09/src/chatroom)

## 『 环境 』

####  jdk:11.0
####  redis:2.8.9
####  maven工程

## 『 模式 』

#### 采用C/S模式
#### 实现多个客户端通过服务端进行私聊,广播,私发文件,广播文件

## 『 思路 』


####  -  客户端通过Redis数据库实现注册 登录 修改密码
####  -  登录成功后连接服务端 发送消息 并接收服务器转发其他客户端发送来的消息


> ##### 具体思路如下图:


![思路3](https://s3.ax1x.com/2020/12/30/rXpDZ8.png "思路3")


## 『 模块 』

- ### bean
  ##### 存储实体类

		Info:通信的消息报文类,包括消息报文的类型、内容、发送者、接收者、文件。
		User:客户端实体,包含username,password,image,分别代表用户名,密码,头像。

- ### Service
  ##### 存储业务类
		LoginFrame:登录界面,包含注册,登录,修改密码
		ProfileFrame:操作界面,包含连接服务器,私聊,广播

- ### Starter
  ##### 存储启动类
		Server:服务端启动类
		Client:客户端启动类


- ### Util
   ##### 工具类
		RedisUtils:用于与Redis远程服务器的操作,包括存用户名、密码等的缓存。
		SwingUtils:包含Swing组件需要的方法,包括图标比例自适应、等比例面板大小。
		ToolUtils:通用功能工具类,包括获取系统时间、获得文件后缀名、读写文件、获得用户头像等。


## 『 效果 』

>![服务器](https://s3.ax1x.com/2020/12/29/r7BtIS.png "服务器")
>![客户端连接](https://s3.ax1x.com/2020/12/29/r7BUPg.png "客户端连接")
>![上传文件](https://s3.ax1x.com/2020/12/29/r7BaGQ.png "上传文件")