Очистка NSOutputStream

Я работаю над приложением для iPhone и хотел использовать:

CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serverWriteStream);

И после этого используйте:

[serverWriteStream write:[sendData bytes] maxLength:[sendData length]];

Я хочу отправлять небольшие пакеты по 5 байт, чтобы получать обновления в реальном времени.

Моя проблема в том, что поток отправляет данные только тогда, когда буфер заполнен. Поэтому мне нужен какой-то метод очистки или сказать потоку немедленно отправить данные.

Поиск этой проблемы закончился обнаружением «TCP_NODELAY», который, похоже, принадлежит недокументированному API (который я не должен использовать для AppStore, поправьте меня, если я ошибаюсь, пожалуйста), и даже если бы мне было разрешено использовать его, мне пришлось бы изменить создание потоков, не так ли?


person Nils    schedule 24.07.2011    source источник


Ответы (1)


Cocoa NSOutputStream отправляет в соединение

Просто добавьте «конец строки» («\n») к вашей строке. работай на меня.

person Blynkx    schedule 12.09.2011
comment
В некоторых случаях лучшим решением является последовательность \r\n. - person user902691; 26.09.2013
comment
Что делать, если данные не являются строкой? - person Marcello Carrozzino; 05.08.2020