2012-06-04 46 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