最近,我用Iphone开发了一个简单的文件下载应用程序。我在iPhone3GS上测试了一下,发现了一些有趣的东西。
当应用程序开始下载文件时,我将其关闭。我在一段时间(比如说6秒)后打开了应用程序,下载实际上是从它离开的地方开始的。
软件如何能够暂停和恢复http下载。(我的tomcat服务器没有任何流媒体或恢复能力)
我的设置是Tomcat,它有一个Servlet,它基本上是从文件系统读取并发送出去。和简单的iPhone3GS文件下载应用程序,我没有启用任何UIBackgroundModes。为表示状态而添加的进度条
发布于 2011-05-28 15:19:48
你看到的是一个连接超时的问题,在你的应用程序不活跃的时候不会触发。更详细地说:
中出现任何错误,则可以根据发送顺序重新排列它们
因此,这应该解释了你的应用程序在6秒停止后没有出现故障地恢复连接的事实。
如果您让您的应用程序关闭更长的时间,您将看到连接将中断。
发布于 2011-05-28 15:18:41
将大型数据分成小部分是HTTP标准的一个基本特性。详情请参见HTTP1.1 - Section 14.16 - Content-Range。默认情况下,Cocoa实现很可能会处理所有这些问题。大量下载将在传输过程中缓存,并在请求时自动恢复。
服务器和iPhone实际上不需要任何额外的软件来支持此功能。在HTTP通信的上下文中,每次下载都只是从服务器发出的一些数据包,而这些数据包中的任何一个都可能需要很长时间才能真正到达接收设备。恢复下载实际上是相同的下载,两个包之间有一个异常长的延迟。
https://stackoverflow.com/questions/6160170
复制相似问题