Разъемы BSD не работают в среде iPhone 3G - PullRequest
3 голосов
/ 21 марта 2010

Я заметил, что во время разработки для iPhone 3G функции гнезда BSD просто не работают.Я также заметил, что в то время антенна 3G даже не была включена, и не было WIFI-доступа для резервного копирования сетевого вызова (так что кажется нелепым, что он не включается для поддержки сетевого запроса). Эта информация былапроверено приложением от Apple в SDK, называемом «Проверка подключения», или чем-то в этом роде.

В основном, если вы загружаете Safari или что-то в этом роде, то быстро загрузить приложение - все будет в порядке. Конечно, это не идеально.,Очевидно, что для apple, gethostbyname () или что-то в этом роде ни в коем случае не является причиной для включения антенны.

Я связался с Apple по этому поводу, и они сказали, что функции BSD не включают антенну., но вызов всех функций Objective-C CFNetwork делает.Я хочу переносимый код, так есть ли способ сохранить мои существующие настройки BSD?Мне действительно не нравится кодирование в Objective-C, поэтому, если кто-то знает обходной путь, это было бы здорово.

1 Ответ

8 голосов
/ 21 марта 2010

Дополнения CFStream Socket - это то, что Apple рекомендует использовать вместо прямых BSD-сокетов. Они специально предупреждают об использовании сокетов BSD здесь :

Хотя сетевые API BSD (POSIX) доступны в iPhone OS, вы должны Избегайте их использования. Если вы общаетесь прямо с розетками, наверняка сетевые возможности iPhone OS, такие как VPN по требованию, не работают. Используйте API, предоставленные в CFStream Вместо Socket Additions.

Обратите внимание, что CFNetwork и тому подобное не Objective-C, а прямое C почти для всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...