# 基于netty的聊天室DNS版本 **Repository Path**: CodeBing_X/nettychat ## Basic Information - **Project Name**: 基于netty的聊天室DNS版本 - **Description**: 没有什么可以描述的,自己看readme - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-25 - **Last Updated**: 2025-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网络聊天室 一个基于Netty的简单网络聊天室应用,支持公共聊天、私聊和用户管理功能。 ## 功能特点 - 服务器端和客户端分离架构 - 支持用户注册和登录 - 公共聊天和私聊 - 历史消息查询 - 用户信息修改 - 在线用户列表 ## 界面展示 ### 服务器界面 ![服务器界面](photo/server.png) ### 用户聊天界面 ![用户1界面](photo/user1.png) ### 多用户交互 ![用户2界面](photo/user2.png) ### 日志记录 ![日志记录](photo/log.png) ## 快速开始 ### 编译项目 ```bash mvn clean package ``` ### 启动应用 运行 `start.bat` 启动脚本,选择服务器或客户端模式。 或者使用单独的脚本: - 服务器: `run-server.bat` - 客户端: `run-client.bat` ## 客户端命令 - `/login 用户名 密码` - 登录 - `/register 用户名 密码` - 注册 - `/logout` - 登出 - `/history` - 查看历史消息 - `/update 新用户名 新密码` - 更新用户信息 - `/update -u 新用户名` - 只更新用户名 - `/update -p 新密码` - 只更新密码 - `/help` - 显示帮助信息 - `/exit` - 退出 直接输入内容发送公共消息,使用 `@用户名 消息` 发送私聊消息。 ## 默认用户 系统预设了三个测试用户: - 用户名: `test`, 密码: `123456` - 用户名: `root`, 密码: `root` - 用户名: `admin`, 密码: `admin` ## 技术栈 - Java 8+ - Netty 4.1 - Gson - Logback ## 系统架构 聊天室采用C/S架构,基于Netty实现高性能网络通信: 1. **服务端组件**: - ChatServer: 服务器主类,负责端口监听和客户端连接 - ServerHandler: 处理客户端消息,实现业务逻辑 - MessageCodec: 消息编解码器,实现对象与JSON互转 2. **客户端组件**: - ChatClient: 客户端主类,负责连接服务器 - ClientHandler: 处理服务器响应的消息 - 控制台交互模块: 提供命令行界面 3. **公共组件**: - User: 用户信息类 - Message: 消息传输类 - MessageType: 消息类型枚举 ## 常见问题 **Q: 启动服务器时显示"端口已被占用"?** A: 服务器会自动尝试使用下一个可用端口。或者您可以在启动时指定其他端口。如下图所示: ![日志记录](photo/log.png) **Q: 客户端无法连接到服务器?** A: 确保服务器已经启动,并且客户端使用了正确的服务器地址和端口。 **Q: 如何查看历史消息?** A: 登录后,在客户端输入 `/history` 命令查看历史聊天记录。 **Q: 如何查看日志?** A: 日志文件存储在 `logs` 目录下。