QTcpSocket的readyRead信号触发条件解释

本文解析了QTcpSocket中readyRead信号的工作机制,包括信号触发条件、与发送端write函数的关系以及如何处理连续到来的数据包。指出readyRead信号触发依赖于数据到达QTcpSocket缓存,而不仅仅是发送端的write操作。
摘要由CSDN通过智能技术生成

转自:https://blog.csdn.net/dengdew/article/details/79065608

   本篇文章是我看了其他博主对QTcpSocket中的readyRead信号机制的解读,感觉对自己理解这一块很有帮助,故将摘要内容写在下面,供自己学习和大家查阅。如有侵权,请联系我删除。

   1、readyRead信号触发是在QTcpSocket缓存接收到新的数据时,并不等同于发送端write函数调用一次。实际情况是发送端write的数据先到接收端系统的Tcp/ip协议栈中(也就是系统的IO缓冲区),然后再从此缓冲区到QTcpSocket程序的缓存中。readyRead信号触发需要数据传到QTcpSocket缓存中。

   2、当数据从系统缓冲区到QTcpSocket缓存时,readyRead信号触发一次。如果此时readyRead槽函数还没有及时执行,又有新的数据到来了,而且来了很多次(QTcpSocket缓存还没满的情况,满的情况下系统不再发数据给应用),那么这些所有的都将会只触发一次readyRead信号。

   3、当数据从系统缓冲区到QTcpSocket缓存时,readyRead信号触发一次。如果此时readyRead槽函数执行了,后续再来的新数据,将会触发新的readyRead信号。但这个QTcpSocket连接中,还没有响应的readyRead信号最多只有两个。

转载于:https://www.cnblogs.com/xukai6/p/9668674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值