2010-04-19 6 views
11

현재 원격 서버에서 파일을 송수신하는 응용 프로그램에서 작업 중입니다. 네트워크 작업을 수행하려면 QNetworkAccessManager를 사용하고 있습니다.QNetworkAccessManager 시간 초과

파일을 업로드하려면 QNetworkAccessManager :: put()을 사용하고 다운로드하려면 QNetworkAccessManager :: get() 함수를 사용하고 있습니다.

파일을 업로드하는 동안 15 초가 초과 된 타이머를 초기화합니다. 작은 파일을 업로드하면 시간 초과 기간 내에 완료됩니다. 그러나 크기가 매우 큰 파일을 업로드하려고하면 시간이 초과됩니다. 큰 파일을 업로드하는 시간을 결정하는 방법.

큰 파일을 다운로드 할 때와 동일합니다. 나는 readread() 신호에 청크 파일을 가져온다. 여기서도 큰 파일을 다운로드하면 시간이 초과됩니다. 그래서 큰 파일의 업로드 시간을 어떻게 결정할 것인가.

답변

17

QNetworkReply::uploadProgress() (또는 downloadProgress) 신호를 사용하여 작동이 진행 중임을 알리십시오. 그런 다음 마지막으로 uploadProgress/downloadProgress 알림 (다운로드/업로드 시작시 타이머가 시작된 후) 후 15 초 동안 타이머를 설정하십시오. 다운로드가 중지되면 마지막 업데이트 후 15 초 후에 작업을 취소 할 수 있습니다.

+0

다운로드 작업을 취소하고 httpFinished()를 내보내는 QNetworkReply를 만드는 방법은 무엇입니까? – Temak

+1

@Temak은'reply-> abort()'와'reply-> finished()'를 사용합니다. – vladon

+1

프레임 워크 IMO가 구현해야합니다 ... – Kolyunya