2013-04-23 2 views
1

Мне нужно вытащить множество изображений с FTP.Что лучше получить файлы - FTP или HTTP в коде iOS?

Я пробовал то же самое с сервером tomcat, просто указывая серверный URL-адрес изображения, он выглядит быстро и хорошо. Чтобы провести исследование по удалению FTP-файла с FTP-сервера, получен образец от яблока SimpleFTPSample

В образце есть код для извлечения изображения с FTP, но его слишком медленно, чтобы вытащить изображение.

Почему это занимает много времени для одного изображения? если мне нужно получить набор изображений, я не могу представить себе временную задержку?

Спасибо, Easwar

+1

@PrakashDesai Принял ваш ответ. Спасибо –

+0

хорошие вопросы, у меня действительно есть тот же самый – freelancer

ответ

5

Как Daniel states here:

Что не делает FTP быстрее:

Без добавления мета-данных в отправленных файлов, только в виде необработанных двоичных

Никогда Chunked кодирование «накладные расходы»

Что делает HTTP быстрым эр:

повторное использование существующих постоянных соединений сделать более высокую производительность TCP

конвейерная делает просят несколько файлов с одного сервера быстрее

(автоматический) сжатия делает меньше данных присылают

не команда/ответ поток минимизирует дополнительные круговые поездки

В конечном счете чистый результат, конечно, различается в зависимости от конкретных деталей, но я бы сказал, что для одноразовых s tatic файлы, вы не сможете измерить разницу . Для небольшого файла с одним выстрелом вы получите быстрее с FTP (если только сервер не находится на расстоянии ). При получении нескольких файлов HTTP должен быть быстрее.

Используйте следующий метод делегата для отслеживания прогресса загрузки:

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

totalBytesWritten/totalBytesExpectedToWrite gives me the upload percentage. 
0

Что делает FTP медленнее:

вы должны построить соединение каждый раз для каждого файла.

В этом я не уверен: handschaking делается на порт X (22), может быть, и Tranfer данных осуществляется в порту Y (21 возможно)

Что делает HTTP медленнее: заголовке протокола HTTPS.

для одного большого файла IO будет использовать FTP, для связки небольших файлов HTTP, для 1 или нескольких небольших файлов: код, который можно скопировать-вставить в течение 10 секунд :)

FTP-требует FTP-сервер, а также устанавливать права и HTTP-сервер, как правило, уже существуют, если вы заботитесь о требованиях к серверной стороне.

Firewall: обычно HTTP предоставлен, FTP отказано

0

FTP является гораздо более сложным, чем HTTP: 1 несколько команд должны быть выполнены, чтобы запросить файл 2 другое соединение TCP должен быть создан, чтобы передавать данные файла

так что HTTP - лучший выбор, если ваше приложение чувствительно к задержкам.

Смежные вопросы