Ошибка закрытия и открытия NSStream

Я работаю с NSStream для отправки и получения отдельных символов по сетевому соединению.
Я создаю потоки как для чтения, так и для записи, используя CFStreamCreatePairWithSocketToCFHost(...),

Основной рабочий механизм отправки и получения работает нормально.

Теперь я хочу создать NSStream только когда мне нужно что-то отправить или получить (обычно один раз каждые 2 минуты). В первый раз я создаю потоки, отправляю пакет, закрываю его, и все работает хорошо. Далее я пытаюсь воссоздать NSStream (создайте новый сокет и откройте на нем поток), функция открытия не работает. Так как я использую netcat чтобы проверить это, я вижу, что когда я закрываю поток, используя [NSStream close] Метод, соединение на сервере не закрывается. Как я могу заставить закрыть сокет? Или есть лучший способ сделать то, что я пытаюсь сделать?

1 ответ

Решение

Использование CFWriteStreamSetProperty а также CFReadStreamSetProperty установить kCFStreamPropertyShouldCloseNativeSocket в kCFBooleanTrue для того, чтобы нижележащий сокет был закрыт при закрытии потока.

Другие вопросы по тегам