首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载大尺寸压缩文件时使用SocketException

下载大尺寸压缩文件时使用SocketException
EN

Stack Overflow用户
提问于 2013-06-12 00:27:55
回答 5查看 1.4K关注 0票数 10

我正在从服务器下载一个大尺寸的zip文件。我被跟踪了

代码语言:javascript
运行
复制
06-11 21:45:18.789: I/System.out(8993): java.net.SocketException: recvfrom failed: ETIMEDOUT (Connection timed out)

我的应用程序不会停止,但我的下载会停止。这种情况发生在hdpi android移动设备上,特别是低处理器设备。下载功能在S3和平板电脑上运行良好。我正在使用简单的FileOutputStream方法下载该文件。

EN

回答 5

Stack Overflow用户

发布于 2014-04-05 02:24:56

我想,你应该获得一个WakeLock来完成你的下载,然后发布它。特别是,如果你正在通过Wi-Fi连接下载一个大文件,通常需要购买一个WifiLock来保持无线电处于唤醒状态。

另一方面,您也可以(如果还没有)尝试一下DownloadManager。正如this official article on wakelocks所说,

如果您的应用程序正在执行长时间运行的HTTP下载,请考虑使用DownloadManager。

票数 4
EN

Stack Overflow用户

发布于 2013-06-12 18:35:50

如果使用的是HttpConnection,则增加超时

HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.setReadTimeout(10000 );

HttpConnectionParams.setSoTimeout(httpParameters,10000);//

票数 3
EN

Stack Overflow用户

发布于 2014-04-03 20:15:24

我不太确定这可能是问题所在,但这是有可能的。你说这发生在低处理器设备上,它可能发生在远程服务器的上行比特率太大以至于客户端的下行比特率无法处理它的情况下,当大文件发生这种情况时,在接收设备无法处理比特率一段时间后,Socket崩溃,你得到超时。

我的建议是尝试实现一个带宽速率限制器。通过这种方式,您可以测试速度较慢的设备是否对那些长时间下载做出了更好的响应,尽管它们会更慢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17049181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档