Веб-сервер на порту 80 на iPhone - PullRequest
9 голосов
/ 24 июля 2010

Я работал над проектом некоторое время, и у него есть встроенный HTTP-сервер, который работает на порте 8080. Пользователям предлагается получить доступ к устройству через, например, http://192.168.1.4:8080/ - прекрасно работает.Недавно Я понял, что приложения МОГУТ использовать порт 80 для устранения необходимости ": 8080", хотя, если я пытаюсь установить порт на 80, я получаю сбой с "Общей ошибкой CFSocket".

Есть идеи, как включить порт 80 для веб-сервера в приложении?

Несколько скриншотов, где это происходит:

Сначала - на iPad приложение показывает URL-адресагде вы можете получить к нему доступ.

iPad http://enrogue.com/port80/ipad.jpg

Второй - Firefox, по IP:

FF по IP http://enrogue.com/port80/firefox_byip.png

Вышеиз реального приложения в магазине, это не взломанная магия или что-то еще.Я знаю, что порты <1024 зарезервированы для администратора в системах UNIX, поэтому вышеупомянутое приложение, очевидно, делает что-то конкретное для получения доступа к порту. </p>

Ответы [ 2 ]

5 голосов
/ 31 июля 2010

Вы можете привязать порт 80 к интерфейсу IPv4 устройства, но не к интерфейсу IPv6 и не в симуляторе. Вам нужно будет изменить код сокета, чтобы прослушивать только интерфейс IPv4, для симулятора вы можете условно использовать другой порт:

#if TARGET_IPHONE_SIMULATOR
    [httpServer setPort:8080];
#else
    [httpServer setPort:80];
#endif
4 голосов
/ 24 июля 2010

iPhone основан на Unix. Порты ниже 1024 зарезервированы для root / суперпользователя. Чтобы использовать эти порты, вы должны быть пользователем root.

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