• 6991阅读
  • 5回复

readyRead信号的发射问题 [复制链接]

上一主题 下一主题
离线wjfree
 
只看楼主 倒序阅读 楼主  发表于: 2006-09-13
在socket通讯时 在什么情况下会发送readyRead()信号?
数据发完了,缓冲区没满,会发吗?
缓冲区满了,数据没有发完呢?
离线steven820218

只看该作者 1楼 发表于: 2006-09-13
请理解readyRead()在QIODevice中的使用。
一般有新的网络数据到达,或有一个数据块写入。一般数据块大小不会超过缓冲区!
离线wjfree
只看该作者 2楼 发表于: 2006-09-13
还是不太理解,楼上可以说得详细一些吗?
离线coordinates
只看该作者 3楼 发表于: 2006-09-14
void QSocket::readyRead ()

当有进入的数据可以被读取时,这个信号被发射。

每一次有新进入的数据时,这个信号都被发射一次。记住新进入的数据只被报告一次,也就是,如果你没有读取全部数据,这个信号不会被再次发射,除非新的数据到达这个套接字。
离线wjfree
只看该作者 4楼 发表于: 2006-09-16
还有些地方不太清楚,像用tcp协议发送4k的数据,tcp协议本身会将这3k的数据分开发送一个包大约是1460byte,那我接受方是只产生一个一个信号吗?
离线jacklee
只看该作者 5楼 发表于: 2006-09-17
好像没必要讨论这个,反正每次处理这个signal时都读一下又多少个字节可以读了,如果未满足你要的数据长度,就直接退出,等待下一次signal
快速回复
限100 字节
 
上一个 下一个