QTcpSocket:发送大文件时有多个ReadyReads

时间:2013-05-13 18:19:34

标签: c++ qt qtcpsocket

我想使用QTcpSocket以200KB /秒(5秒传输)发送1MB文件。 ReadyRead插槽函数首先读取文件大小(标题),然后启动一个在从套接字读取file_size字节时阻塞的线程。但是,由于readyRead插槽函数在文件传输之前结束,是否会有新的调用readyRead函数(发出新的ReadyReads)会干扰?

我在这里阅读:How to make sure that readyRead() signals from QTcpSocket can't be missed?当你在插槽功能中时,不会发出新的ReadyReads。

2 个答案:

答案 0 :(得分:0)

我自己的问题的一个明显的解决方案是断开()来自插槽函数内插槽函数的readyread()信号,如果可能的话。

答案 1 :(得分:0)

您无需启动单独的线程。只需处理每个readyRead()信号,并将任何新数据附加到文件中。最终将收到所有文件。

您无需一次性完成整个转移,只需一次将文件写入一个块。