У меня работает простой HTTP-сервер, который в значительной степени просто обслуживает файл MP3 порциями одинакового размера. Я пишу приложение для iOS (для тестирования), которое в основном берет URL и передает файл через MPMovieController
. Вот мой пример кода:
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] init];
[mp setMovieSourceType:MPMovieSourceTypeStreaming];
mp.contentURL = [NSURL URLWithString:@"http://127.0.0.1:8080"];
[mp play];
Это работает. НО: на моем http-сервере я вижу несколько соединений (первое разрывается сразу, второе обычно заканчивается до конца, хотя иногда и третье подключение).
Я знаю, что это не проблема сервера, так как, когда я делаю это:
NSData *myData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://127.0.0.1:8080"]];
... тогда есть только 1 соединение, которое завершает чтение и отключается.
Вопрос в том, почему MPMoviePlayerController должен устанавливать и разрывать эти соединения перед завершением чтения файла, почему он просто не ждет, пока в сокет будет записано больше данных? Мне не удалось найти соответствующие документы, которые бы объяснили это: (
P.S. Если вам интересно, зачем мне это нужно, вот краткое объяснение: я пытаюсь эмулировать реальные сетевые сценарии, где байты принимаются MPMovieController порциями с небольшими задержками случайной длины между