Qt的QTcpSocket ReadyRead信号的实现

Posted

技术标签:

【中文标题】Qt的QTcpSocket ReadyRead信号的实现【英文标题】:Implementation of Qt's QTcpSocket ReadyRead signal 【发布时间】:2013-05-13 14:47:30 【问题描述】:

我想知道Qt对QTcpSocketReadyRead信号的实现。它是如何在 Windows 和 Linux 上实现的?使用select()poll()epoll()SIGIO 或任何其他方式? QTcpSocket 如何知道何时发出 ReadyRead 信号?

【问题讨论】:

您好,我删除了您问题的第二部分,希望没有问题。您应该将其作为单独的问题发布。 【参考方案1】:

由于Qt是开源的,你可以直接看源码,自己看看。

他们甚至拥有它posted online。

特定于操作系统的部分(我认为)在qnativesocketengine_unix.cpp 和qnativesocketengine_win.cpp 中实现。

【讨论】:

我很确定你不会在 Linux 的代码中找到答案,因为它似乎被集成到 gtk+ 事件循环中并使用 gtk+ 使用的任何东西。 仅供参考,Qt 与 GTK+ eventloop 完全没有关系

以上是关于Qt的QTcpSocket ReadyRead信号的实现的主要内容,如果未能解决你的问题,请参考以下文章

QTcpSocket readyRead() 信号多次发出

接收不到 QTcpSocket 的 readyRead 信号?

QT程序socket的readyRead信号不触发

QTcpSocket类中的ReadyRead()信号没有被触发

Qt的Socket数据通讯的一个样例。

为啥在 Qtcpsocket 的 readyRead 回调中调用 readAll 时没有内容?