1

我必须从 FTP 中提取一组图像。

我通过只提供图像的服务器 url 尝试了与 tomcat 服务器相同的事情,它看起来又快又好。为了研究从 FTP 服务器拉取 FTP 文件,从苹果SimpleFTPSample 获取了一个样本

在示例中,有一个从 FTP 拉取图像的代码,但是拉取图像太慢了。

为什么要花这么多时间拍一张照片?如果我必须得到一些图像,我无法想象时间延迟?

谢谢,伊斯瓦尔

4

3 回答 3

5

正如丹尼尔在这里所说

是什么让 FTP 更快:

发送的文件中没有添加元数据,只有原始二进制文件

从不分块编码“开销”

是什么让 HTTP 更快:

重用现有的持久连接可以提高 TCP 性能

流水线可以更快地从同一服务器请求多个文件

(自动)压缩使发送的数据更少

没有命令/响应流可最大限度地减少额外的往返行程

最终最终结果当然会根据具体细节而有所不同,但我会说对于单次静态文件,您将无法衡量差异。对于单次拍摄的小文件,您可能会使用 FTP 更快地获得它(除非服务器的往返距离很长)。当获取多个文件时,HTTP 应该是更快的一个。

使用以下委托方法来跟踪上传进度:

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite

totalBytesWritten / totalBytesExpectedToWrite gives me the upload percentage.
于 2013-04-23T12:37:29.630 回答
0

是什么让 FTP 变慢:

您必须每次为每个文件建立连接。

在这我不确定:握手是在端口 X(也许是 22)上完成,数据传输是在端口 Y(也许是 21)上完成

是什么让 HTTP 变慢:https 标头。

对于一个大文件 IO 将使用 FTP,对于一堆小文件 HTTP,对于一个或几个小文件:我可以在 10 秒内复制粘贴的代码 :)

FTP需要一个FTP服务器,并且设置权限和HTTP服务器通常已经存在,如果你关心服务器端的要求。

防火墙:通常授予 http,拒绝 ftp

于 2013-04-23T12:42:24.100 回答
0

FTP 比 HTTP 复杂得多: 1 必须执行几个命令来请求文件 2 应该创建另一个 TCP 连接来传输文件数据

因此,如果您的应用程序对延迟敏感,那么 HTTP 是最佳选择。

于 2013-06-05T00:49:52.287 回答