2013-05-13 55 views
0

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

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

回答

0

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

0

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

您不需要一次完成整个传输,只需一次将文件写入一个块。