Я хочу отправить большой объем данных на сервер, используя NSURLConnection
(и NSURLRequest
). Для этого я создаю связанную пару NSStream
с (используя CFStreamCreateBoundPair(...)
). Затем я передаю входной поток в NSURLRequest
(-setHTTPBodyStream:
) и планирую выходной поток в текущем цикле выполнения. Когда цикл выполнения продолжается, я получаю события для отправки данных, и поток ввода отправляет эти данные на сервер.
Моя проблема в том, что это работает только тогда, когда данные помещаются в буфер между парными потоками. Если данные больше, то каким-то образом входной поток получает событие (я полагаю, «доступны байты»), но NSURLConnection еще не открыл входной поток. Это приводит к печатанию сообщения об ошибке, и данные не отправляются.
Я пытался уловить это в моем методе -stream:handleEvent:
, просто возвращая, если входной поток еще не открыт, но затем мой выходной поток получает событие закрытия потока (возможно, потому что я никогда не отправлял данные, когда мог).
Итак, мой вопрос: как правильно использовать связанную пару потоков с NSURLConnection?
(Если это имеет значение: я занимаюсь разработкой на платформе iOS)
Любая помощь приветствуется!
Приветствия, Маркус