Вы загружаете все через сокет, который знает только о байтах, поэтому пакет или даже файл не «естественным образом» передаются через, сторона сервера открывает файлы, кодирует и отправляет их в соединение, клиент читает из сокета и восстанавливает исходную файловую структуру.
Предполагая, что приложение имеет пользовательский интерфейс для выбора элементов, которые необходимо перенести, оно может затем запросить все элементы на сервер, а затем сервер может отправить все элементы через одно соединение с определенным вами разделением, так что Приложение iPhone может разделить поток обратно на отдельные файлы.
Или другой вариант: клиент может просто выполнять отдельные HTTP-запросы для разных файлов, используя довольно простое использование NSURLConnection .
Первое звучит как попытка оптимизировать второе. Вы уже проверяли и проверяли, что последний слишком медленный / неэффективный? Это определенно сложнее в реализации.
Существует проблема задержки с несколькими HTTP-соединениями, которые вы запускаете в последовательности, однако, возможно, вы можете уменьшить ее, запустив несколько подключений для загрузки параллельно - например, через NSOperationQueue с лимитом 2 до 5 одновременных операций загрузки.