# ChatSphere
**Repository Path**: dogdoog/chat-sphere
## Basic Information
- **Project Name**: ChatSphere
- **Description**: 简单的跨平台网络聊天室
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-04
- **Last Updated**: 2025-11-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ChatSphere - 基于Internet的聊天室项目

*跨越界限,连接你我*
[](https://www.qt.io/)
[](https://isocpp.org/)
[](LICENSE)
[]()
## 📖 项目简介
ChatSphere 是一个基于Qt框架开发的跨平台网络聊天室应用,采用C++编写,支持多用户实时在线聊天。项目包含完整的客户端和服务器端,实现了稳定可靠的网络通信和友好的用户界面。
## ✨ 主要特性
### 🚀 核心功能
- **实时群聊**:支持多用户同时在线聊天
- **跨平台支持**:可在Windows、Linux、macOS上运行
- **TCP可靠传输**:基于TCP协议的稳定通信
- **粘包处理**:完善的定长包头协议,解决TCP粘包问题
- **自动重连**:网络异常时自动重连机制
### 🛡️ 技术特点
- **多线程处理**:服务器端使用多线程处理客户端连接
- **读写锁保护**:客户端列表的线程安全保护
- **网络字节序**:标准的大端序网络数据传输
- **智能缓冲区**:自动处理不完整数据包
### 🎨 用户体验
- **简洁界面**:直观易用的聊天界面
- **IP地址显示**:自动识别并显示用户真实IP
- **连接状态提示**:实时的连接状态反馈
- **消息历史**:完整的聊天记录保存
## 🏗️ 系统架构
### 客户端架构
```
ChatDialog (UI层)
↓
QTcpSocket (网络层)
↓
定长包头协议 (数据层)
↓
TCP传输 (传输层)
```
### 服务器架构
```
MainDialog (管理界面)
↓
QTcpServer (连接管理)
↓
多线程处理 (并发处理)
↓
消息广播 (数据分发)
```
## 📦 安装与运行
### 环境要求
- **Qt版本**: 5.12 或更高版本
- **编译器**:
- Windows: MinGW 或 MSVC
- Linux: GCC 4.8+
- macOS: Clang
- **C++标准**: C++11 或更高
### 编译步骤
1. **克隆项目**
```bash
git clone https://github.com/your-username/ChatSphere.git
cd ChatSphere
```
2. **使用Qt Creator打开**
- 打开 `ChatSphere.pro` 文件
- 选择对应的编译套件
- 点击"构建"按钮
3. **命令行编译**
```bash
qmake ChatSphere.pro
make
# 或使用 nmake (Windows MSVC)
```
### 运行说明
1. **启动服务器**
```bash
./ChatServer # Linux/macOS
ChatServer.exe # Windows
```
2. **启动客户端**
```bash
./ChatClient # Linux/macOS
ChatClient.exe # Windows
```
3. **连接配置**
- 默认服务器地址为你的本机网络地址
- 默认端口: `8888`
- 可在客户端代码中修改连接参数
## 🔧 配置说明
### 服务器配置
在 `maindialog.cpp` 中修改服务器端口号:
```cpp
m_sock->listen(QHostAddress::Any, Port); // 修改Port端口号
```
### 客户端配置
在 `chatdialog.cpp` 中修改连接设置:
```cpp
m_sock->connectToHost("Your LocalHost IP", Port); // 修改服务器IP和Port端口
```
## 📋 使用指南
### 基本操作
1. **启动服务器**:运行服务器程序,开始监听客户端连接
2. **启动客户端**:运行客户端程序,自动连接服务器
3. **发送消息**:在输入框中输入文字,点击发送按钮
4. **查看消息**:在聊天记录框中查看所有用户消息
### 高级功能
- **多客户端测试**:可同时运行多个客户端实例
- **网络监控**:服务器界面显示在线用户数量
- **自动重连**:网络中断后自动尝试重新连接
## 🔍 技术细节
### 粘包处理机制
- **发送端**:添加4字节长度包头
- **接收端**:先读取包头,再按指定长度读取消息体
- **缓冲区**:自动处理不完整数据包
## 🐛 故障排除
### 常见问题
1. **连接失败**
- 检查服务器IP地址和端口号
- 确认防火墙设置
- 验证网络连通性
2. **编译错误**
- 确认Qt版本(5.12+)符合要求
- 检查编译器支持C++11
- 验证项目文件配置
3. **运行异常**
- 检查端口是否被占用
- 验证依赖库完整性
- 查看系统日志输出
## 🤝 参与贡献
我们欢迎任何形式的贡献!
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 👥 开发团队
- **项目发起人**: 杨家翔
- **主要开发**: 杨家翔
- **测试维护**: 杨家翔
## 📞 联系我
- **邮箱联系**: 15097601713@163.com
## 🎯 未来规划
- [ ] 支持私聊功能
- [ ] 添加文件传输
- [ ] 实现消息加密
- [ ] 支持表情包
- [ ] 添加用户认证
- [ ] 开发移动端版本