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