如何保证通过QNetworkAccessManager下载的文件没有损坏?

时间:2016-04-25 09:58:04

标签: c++ qt network-programming

我一直在寻找这个问题的答案,但却无法找到答案。

我正在使用QNetworkAccessManager从Web服务器下载文件,我想确保下载这个文件没有任何损坏。

我曾经为每个文件实现了一个校验和,但这可能会变得乏味而且可能是不必要的。我以前只是认为QNetworkAccessManager可能会发生腐败。 先决条件是,通过调用QNetworkReply方法QNetworkAccessManager返回的get()对象已发出完成的信号。

如何确保通过QNetworkAccessManager从网络服务器下载的文件不会被破坏?

1 个答案:

答案 0 :(得分:1)

TCP / IP不保证数据的无差错传输,因此即使您从QNetworkAccessManager获得了正确大小的文件,该文件仍然可能已损坏。您需要使用比TCP / IP更好地检测错误的哈希。这与QNetworkAccessManager本身无关,您的网络浏览器也会遇到同样的问题:即使其他任何内容看起来很糟糕,您偶尔也会得到损坏的下载。