2012-06-04 90 views
1

我的應用程序需要下載大文件。一段時間後,我得到下載大文件時出現套接字異常

java.net.SocketException: Connection timed out 

我相信這是因爲該設備是要睡覺或WiFi。

那我該如何處理呢?我希望該用戶可以下載一個大文件,無論需要多少時間。

文件下載使用完成:

HttpURLConnection con = (HttpURLConnection) new URL(uriToFile).openConnection(); 
con.connect(); 

FileOutputStream fileOutput = new FileOutputStream(file); 
InputStream inputStream = con.getInputStream(); 

byte[] buffer = new byte[1024]; 
int bufferLength = 0; 

while ((bufferLength = inputStream.read(buffer)) > 0) { 

    fileOutput.write(buffer, 0, bufferLength); 

} 

fileOutput.close(); 

感謝。

+3

很難在沒有看到任何代碼的情況下幫助您。 –

+1

你可能想嘗試增加'socket.setSoTimeout(nnnn);' – paulsm4

+0

你確定你正在從服務器得到一些響應嗎? – Th0rndike

回答

0

除了重試連接之外,您無法處理它。您可以降低約75秒的默認連接超時時間,但無法提升它。

+0

爲什麼我需要減少時間?而如何做到這一點,如果我使用HttpURLConnection下載文件? – Streetboy

+0

@Streetboy因爲我沒有說你需要降低超時時間,所以我沒有答案。問一個認爲自己是個好主意的人。我不。 – EJP