我一直在寻找这个问题的答案,但却无法找到答案。
我正在使用QNetworkAccessManager
从Web服务器下载文件,我想确保下载这个文件没有任何损坏。
我曾经为每个文件实现了一个校验和,但这可能会变得乏味而且可能是不必要的。我以前只是认为QNetworkAccessManager
可能会发生腐败。
先决条件是,通过调用QNetworkReply
方法QNetworkAccessManager
返回的get()
对象已发出完成的信号。
如何确保通过QNetworkAccessManager
从网络服务器下载的文件不会被破坏?
答案 0 :(得分:1)
TCP / IP不保证数据的无差错传输,因此即使您从QNetworkAccessManager
获得了正确大小的文件,该文件仍然可能已损坏。您需要使用比TCP / IP更好地检测错误的哈希。这与QNetworkAccessManager
本身无关,您的网络浏览器也会遇到同样的问题:即使其他任何内容看起来很糟糕,您偶尔也会得到损坏的下载。