AsyncSocket - это соединение для передачи данных общего назначения. Если вы хотите, чтобы он говорил по HTTP, вам нужно будет самостоятельно кодировать часть HTTP. Вы, вероятно, на самом деле не хотите этого; NSURLConnection
должен делать то, что вы хотите, при условии, что сервер поддерживает это.
Вы запрашиваете заголовок Range:
в HTTP. См. 14.35.2 в RFC2616 . Вам просто нужно добавить этот заголовок к вашему NSURLRequest
. Опять же, это предполагает, что сервер, с которым вы разговариваете, поддерживает это (вам нужно проверить заголовок Accept-Ranges:
в ответе).
Есть небольшая статья с примером кода по этому поводу на Surgeworks .
Вам также следует обратить внимание на ASIHTTPRequest , который включает в себя возобновляемые загрузки и параметры прогресса загрузки, и, вероятно, может быть адаптирован для частичной загрузки. Возможно, у него уже есть решение конкретной проблемы, которую вы пытаетесь решить.