项目源码
项目简介
模拟轻聊版 QQ,实现局域网下多用户之间的通信,实现用户注册、登陆以及用户间 的私聊和群聊服务
项目来源
想要实现一个属于自己的聊天工具,虽然现在只是实现了一小步,相信在自己的不断完善下会越来越好。
项目意义
- 对JavaSE基础知识,多线程,JDBC和数据库的练习
- 满足自己的小兴趣
项目技术
- JavaSE
- Java多线程、线程池
- JDBC编程
- MySQL数据库
- Socket编程
项目描述
- 项目按照功能进行进行实施
- 使用JDBC编程实现对数据库的操作
- 使用 IDEA 中的 GUI 功能编写界面,实现界面
- 通过 Socket 编程实现客户端和服务器连接,使用 IO 技术实现数据传输
- 使用多线程技术实现多个客户端并发通信
实现过程
模型
- 定义服务器和客户端传递信息载体类:(type、content、to)
- 准备数据源配置文件、端口号和IP配置文件
- 准备json字符串和object对象之间的相互转换方法
- 用户基本信息类(id、username、password、brief)
数据库
- 使用JDBC进行Java和数据库之间的交互
- 使用DruidDataSource(数据源)对象获取数据库连接
- 用户信息 --> 数据库中的记录
- 登陆用户和数据库中记录信息匹配
注册和登陆
- 使用IDEA的GUI功能编写登陆界面和注册界面
- 将用户注册信息存入数据库
- 用户登陆信息和数据库记录进行匹配
- 使用多线程+Socket编程建立当前用户和服务器之间的连接
- 将当前所有在线用户存储到服务器端
私聊
- 使用IDEA的GUI功能编写用户界面和私聊界面
- 使用点击事件方法触发当前用户和指定用户之间私聊事件
- 使用IO技术进行数据传输
群聊
- 使用IDEA的GUI功能编写创建群聊和群聊界面
- 使用Btn键触发创建群聊,使用JcheckBox展示当前所有可选成员,使用isSelect()判断选中的群成员
- 使用IO技术进行数据传输
效果展示
注册:
登陆:
用户界面:
私聊界面
创建群聊:
群聊界面
测试
- 机器信息
处理器:Intel(R ) Core™ i5-7200U CPU @ 2.50GHZ
内存(RAM):8.00GB(7.90GB可用)
固态硬盘:SSD - 软件信息
H2嵌入式文件存储,版本1.4.197
需求分析
项目需要实现以下功能
- 界面展示以及在界面操作
- 用户注册
- 用户登陆校验
- 用户界面显示当前在线用户以及加入的群聊
- 指定用户进行私聊
- 创建多人群组并进行群聊天
测试计划
- 首先在开发过程中伴随着简单的单元测试和集成测试
- 接着按照需求分析进行功能测试
- 最后进行数据传输的性能测试
- 待测:高并发的负载测试和压力测试
测试用例
对比数据得出结论:
- 客户端的并发数对通信效率有影响
- 群聊成员数对通讯效率有影响
- 客户端的并发数对通讯效率影响不大