2011-06-20 91 views
0

我使用Winhttp C++从服务器下载一个exe文件。我使用MSDNWinhttpReadData缓慢的网络

http://msdn.microsoft.com/en-us/library/aa384104%28v=vs.85%29.aspx

提供的示例代码它的工作原理fine.I通常用于添加了所有的数据读取(读取来自WinhttpReadData),并记录它。

预期的结果是,添加的总和应该与exe的大小相匹配。它在合理的快速网络中工作正常。

如果网络速度很慢,读取的数据比原始大小大得多。但是当我检查下载的exe大小时,它与服务器的大小相同。

日志(即将读取的数据相加)显示它读取的数据比原始大小多。

请记住它只发生在慢速网络中。有没有人遇到过这个问题?

回答

0

您是否尊重通过lpdwNumberOfBytesRead参数返回的值?每次调用时读取的字节数可能少于您提供的缓冲区大小 - 尤其是当由于网络缓慢而可用的字节较少时。

+0

是的,我尊重它。我只加起来lpdwNumberOfBytesRead。 – user738471