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

时间:2015-11-19 11:42:44

标签: c multithreading qt sockets

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

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

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

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

或者 如果我们假设服务器具有更多的内存,强大的处理器等,那么上面的设计就可以正常工作。

以上解决方案对我的设计有好处吗? 如果它不好,那么还有其他方法可以在qt中开发多客户端服务器吗?

1 个答案:

答案 0 :(得分:1)

我会重新审视你,看看MSDN的I / O完成端口

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作为处理套接字的线程数来处理它们的请求,我以前用来处理4000个套接字核心服务器处理4000个RTP流