Qt - 一个简单的回显服务器

Posted

技术标签:

【中文标题】Qt - 一个简单的回显服务器【英文标题】:Qt - A simple echo server 【发布时间】:2011-05-31 09:37:41 【问题描述】:

在 Qt 中,你将如何在 QThreadPool 中保持线程处于活动状态;据我所知,只有一个运行 QRunnable 的选项,我被告知他们无法控制它们所在的线程。我将如何使用线程池保持套接字处于活动状态并准备好进行读写?

【问题讨论】:

【参考方案1】:

QThreadPool 管理自己的线程。 QT Doc 说

QThreadPool 管理和回收 单独的 QThread 对象来帮助 减少线程创建成本 使用线程的程序。

所以你不应该试图让线程保持活动状态。这打破了线程池的目的。

QT 套接字也被设计为与主事件循环一起工作。为什么不尝试使用它们?

【讨论】:

【参考方案2】:

a) 只需使用 QThread 后代,而不是线程池。

b) 不要将套接字绑定到线程 - 当 select() 返回时,分配一个线程来处理套接字事件。

Rgds, 马丁

【讨论】:

以上是关于Qt - 一个简单的回显服务器的主要内容,如果未能解决你的问题,请参考以下文章

C TCP套接字,带有文件发送的回显服务器,发送文件后挂断

socket编写简单回显server

docker日志引擎说明

Qt/C++ echo client + python echo server的问题(没有收到数据)

为啥“stty -echo”没有关闭 macOS 上的回显位

二维json数组的回显部分