我正在使用 Qt 5.6。我正在开发一个简单的聊天应用程序,并且在网上遇到了几个地方都说您必须创建一个新线程来包含QTcpSocket
以处理新线程中的所有新连接。
我试图弄清楚为什么你不能只使用 aQList
来QTcpSockets
处理所有的连接。有人可以向我解释为什么吗?
如果我弄错了,这是一件非常好的事情,也请告诉我。
提前致谢。
我正在使用 Qt 5.6。我正在开发一个简单的聊天应用程序,并且在网上遇到了几个地方都说您必须创建一个新线程来包含QTcpSocket
以处理新线程中的所有新连接。
我试图弄清楚为什么你不能只使用 aQList
来QTcpSockets
处理所有的连接。有人可以向我解释为什么吗?
如果我弄错了,这是一件非常好的事情,也请告诉我。
提前致谢。
使用多线程 tcp 服务器或使用一个线程 tcp 服务器取决于您的任务。在某些任务中,一个线程就足够了,您可以“只使用一个QList
” QTcpSockets
。此类任务的主要特点是:
在其他情况下,最好让您的 tcp 服务器有机会同时进行一些工作。一个线程中有多少个连接取决于您的任务,但是创建非常多的线程也是一个坏主意,因为这样您就会遇到性能问题。许多时间将花在上下文切换上。
我认为,在您的情况下,您可以使用最简单的变体并“仅使用 a QList
of QTcpSockets
”