c - 使用套接字在qt中支持多客户端的服务器设计

标签 c multithreading qt sockets

我想设计支持多个客户端的服务器。 我想到了设计多客户端服务器的解决方案。

解决方法是: 我可以为服务器中的每个客户端创建线程。每个线程将处理与每个客户端的通信。

现在假设如果有 50 个客户端,那么将在服务器端生成 50 个线程。

但如果有 1000 个客户端,那么服务器端将生成 1000 个线程。这不是一个好的解决方案。(因为为系统处理 1000 个线程不会那么容易,我认为是这样。)

或者 如果我们假设服务器具有更多内存、强大的处理器等,上述设计将工作正常。

以上解决方案是否适合我的设计? 如果不好,还有其他方法可以在qt中开发多客户端服务器吗?

最佳答案

我建议你看一下 MSDN 的 I/O Completion Ports

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365198(v=vs.85).aspx

http://www.codeproject.com/Articles/13382/A-simple-application-using-I-O-Completion-Ports-an

这是微软的一项专利,目的是维护大量的套接字并通过使用核心数 * 2 作为处理套接字的线程数来处理来自它们的请求,我曾经在 8 上处理 4000 个套接字核心服务器处理4000个RTP流

关于c - 使用套接字在qt中支持多客户端的服务器设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33802964/

相关文章:

c - 如何让 Xcode 加载正确的 string.h 文件?

c# - 使用多个参数调用控件时参数计数不匹配

c# - RunWorkerAsync 完成时关闭BackgroundWorker

c++ - 如何在不可见模式下运行 qt c++ 控制台应用程序?

c - C 中的返回值

实现哈希表时的 C 段错误 11

c++ - 异步渲染到 Qt OpenGL 窗口

qt - QML 旋转图像

qt - QML 富文本编辑器

c++ - 如何检查指令是否为 LLVM IR 中的 PHI 指令