Skip to content

Commit d23be9c

Browse files
committed
[重构项目结构并优化多线程TCP服务器文档]: 移除过时的MulClient/MulServer模块,更新README文档提供Qt官方多线程TCP服务器实现指南,简化项目构建配置
- **模块清理**: 完全移除MulClient和MulServer两个过时的TCP通信模块,包括所有源文件、头文件和构建配置,简化项目结构 - **文档优化**: 重写README中的网络通信部分,替换为基于Qt官方文档的多线程TCP服务器实现机制说明,提供标准的`incomingConnection`重写指南和代码示例 - **构建配置更新**: 同步更新CMakeLists.txt和src.pro文件,移除已删除模块的构建条目,确保编译系统与代码结构保持一致 - **技术标准化**: 引导开发者使用Qt框架推荐的多线程TCP服务器实现模式,强调线程间套接字描述符传递和连接管理的正确做法
1 parent 7197735 commit d23be9c

25 files changed

Lines changed: 20 additions & 855 deletions

README.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,26 @@
142142
- 控制台输出长度限制,避免过长日志刷屏
143143
- 内置信号槽机制,确保多线程环境下的数据安全
144144

145-
### [MulClient](src/MulClient/) - 多线程 TCP 客户端
146-
147-
- 多客户端连接
148-
- 每个客户端一个线程的架构
149-
150-
### [MulServer](src/MulServer/) - 多线程 TCP 服务器
151-
152-
- 每个客户端一个线程的服务器实现
153-
- 实时 TCP 通信
145+
### [MultithreadedTcpServer](https://doc.qt.io/qt-6/qtcpserver.html#incomingConnection) - 多线程TCP服务器实现机制说明
146+
147+
**核心机制**:重写 `QTcpServer::incomingConnection(qintptr socketDescriptor)` 方法
148+
149+
- **线程间传递**:将原生套接字描述符传递给工作线程
150+
- **线程内创建**:在工作线程中创建 `QTcpSocket` 并调用 `setSocketDescriptor()`
151+
- **连接管理**:自定义socket需调用 `addPendingConnection()` 加入连接机制
152+
153+
```cpp
154+
// 核心实现模式
155+
void ThreadedTcpServer::incomingConnection(qintptr socketDescriptor)
156+
{
157+
// 创建工作线程并传递socketDescriptor
158+
ClientThread *thread = new ClientThread(socketDescriptor, this);
159+
connect(thread, &ClientThread::finished, thread, &QObject::deleteLater);
160+
thread->start();
161+
}
162+
```
163+
164+
**参考文档**:[QTcpServer Class - Qt 6 Documentation](https://doc.qt.io/qt-6/qtcpserver.html#incomingConnection)
154165
155166
### [NavigationProgressBar](src/NavigationProgressBar/) - 导航进度条
156167

src/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ add_subdirectory(LifecycleCallback)
1414
add_subdirectory(LoadingIndicator)
1515
add_subdirectory(LoadingIndicatorQuick)
1616
add_subdirectory(LoadingOverlayQuick)
17-
add_subdirectory(MulClient)
18-
add_subdirectory(MulServer)
1917
add_subdirectory(NavigationProgressBar)
2018
add_subdirectory(PasswordLineEdit)
2119
add_subdirectory(ProgressArc)

src/MulClient/CMakeLists.txt

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/MulClient/MulClient.pro

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/MulClient/main.cpp

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/MulClient/mainwindow.cpp

Lines changed: 0 additions & 181 deletions
This file was deleted.

src/MulClient/mainwindow.h

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/MulClient/tcpclient.cpp

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/MulClient/tcpclient.h

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)