QTcpSocket的读写函数一般是异步的,即write函数执行后,其实不一定会把数据写入socket,可能要等到事件循环(main函数的return a.exec())才会写入。如果需要立即写入,要执行QTcpSocket的flush函数。
QTcpSocket的读函数也类似,我们定义一个槽函数void slot_readyRead响应信号readyRead,槽函数中,能够读取的数据,也只有这段时间内socket收到的数据。如果此时socket再收到数据,slot_readyRead执行期间不会重入,但是能够读到的数据也只有第一次readyRead时的数据。
猜测QTcpSocket有一个读写缓冲区,在事件循环的时候,这些内容才能实际的读写。
本文探讨了QTcpSocket的读写特性,指出其读写操作通常为异步,并解释了如何确保数据立即写入及读取函数的行为。文中还提到了QTcpSocket可能存在的读写缓冲区机制。

3760

被折叠的 条评论
为什么被折叠?



