13

Presently I am working on an application which sends and receives file from remote server. To do network operation I am using QNetworkAccessManager.

To upload a file I am using QNetworkAccessManager::put() and to download I am using QNetworkAccessManager::get() functions.

While uploading a file I will initialize a timer with time out of 15 sec. if I upload a small file it will complete it within the time out period. But if I try to upload a file which is very large in size get time out. So how to decide time out for uploading of large file.

Same in case of downloading of a large file. I get file in chunk by chunk in readyread() signal. Here also if I download a large file I get time out. So how to decide time out for uploading of large file.

Umesha MS
  • 2,861
  • 8
  • 41
  • 60

1 Answers1

20

Use the QNetworkReply::uploadProgress() (or downloadProgress) signal to alert you that the operation is progressing. Then, set a timer for 15 seconds after the last uploadProgress/downloadProgress notification (with the timer started when the download/upload commenced.) If the download ever stops, you can cancel the operation 15 seconds after the last update.

feedc0de
  • 3,646
  • 8
  • 30
  • 55
Kaleb Pederson
  • 45,767
  • 19
  • 102
  • 147