我想知道 Qt 对QTcpSocket'sReadyRead信号的实现。它是如何在 Windows 和 Linux 上实现的?使用select(),poll(),epoll(),SIGIO或任何其他方式?如何QTcpSocket知道何时发出ReadyRead信号?
如果我有一个TCP连接,在200字节/秒的数据传送,但我只read()/ recv()从插座每秒一次,其中是那些200 KB的数据存储在同时?
据我所知,数据在ack被发送到发送者之后会离开TCP套接字的读缓冲区,而且它仍然太小而无法容纳200KB的数据,它在哪里等待,直到它可以read()/ recv()由我的客户端?
谢谢!!
以下答案声称数据在被识别后立即离开TCP读缓冲区,然后再读取()/ recv()d:
"接收器的套接字接收缓冲区的大小决定了在没有确认的情况下可以传输多少数据"
可能是我的假设是错误的,只有在用户空间程序读取()/ recv()d之后数据才会被确认?