Как использовать Wi-Fi на iPhone для отправки последовательных данных?

Я построил робота, которым хочу управлять по беспроводной сети со своего iPhone. Bluetooth отключен из-за скандальной политики Apple в этом отношении, поэтому мне интересно, оснащаю ли я робота системой Wi-Fi, могу ли я отправлять потоки данных из приложения на iPhone. Разрешает ли Apple какой-либо доступ к Wi-Fi через свои API-интерфейсы, кроме как через браузер? И в идеале приложение также могло бы читать данные, отправленные от робота. Возможно ли это?


person Don    schedule 09.05.2012    source источник
comment
Расскажите подробнее об этом роботе!   -  person Lloyd Powell    schedule 09.05.2012


Ответы (2)


Да, это возможно, если робот каким-то образом может открыть розетку.

Вы можете создать соединение через сокет TCPI / IP между роботом и iPhone. Используя это соединение, вы можете отправлять и получать любые данные, которые захотите.

Некоторые вопросы, касающиеся схожих проблем:

Как создать небольшое приложение для Mac, которое получает данные по сети Wi-Fi из приложения iOS?

Специальное Wi-Fi-соединение между iPhone и Mac - возможно?

(Вы связали вопросы в основном с помощью Bonjour, так как это, вероятно, недоступно на роботе, вам нужен другой способ узнать IP-адрес)

person pre    schedule 09.05.2012
comment
Есть ли другой способ обнаружить другие устройства Wi-Fi с помощью санкционированного API Apple iPhone? Предполагая, что на данный момент он есть, уверены ли вы, что существует API для открытия необработанного сокета TCP-IP? Это не очень похоже на Apple. Но если предположить, что это правда, к каким протоколам Apple предоставляет санкционированный доступ, кроме HTTP? - person Don; 17.05.2012
comment
Вы можете использовать любой протокол, по которому хотите общаться через сокеты TCP / IP. Вы можете создать соединение, например, с помощью CocoaAsyncSocket. Мне очень понравилось. - person pre; 17.05.2012
comment
Хорошо, так что другой вопрос все еще без ответа. Есть ли способ обнаруживать устройства Wi-Fi, кроме Bonjour? - person Don; 26.05.2012
comment
@Don: Вам действительно нужно изучить IP-стек (включая TCP и UDP): UDP - это то, что позволяет транслировать пакеты, и это то, что использует Bonjour. Так что да, вам не нужен сам Bonjour. Если вы можете подключиться к WiFi, я полагаю, у вас также есть стек TCP / IP. Если на вашем роботе установлен Linux, проще всего установить Avahi для обеспечения совместимости с Bonjour. В противном случае просто используйте широковещательные передачи UDP как на iPhone, так и на роботе, чтобы обнаружить службу. В любом случае Bonjour - это всего лишь механизм обнаружения служб; даже если вы его используете, вам все равно нужно использовать сокеты для открытия соединения. - person Ivan Vučica; 15.06.2012

Bluetooth отключен из-за скандальной политики Apple в этом отношении

Вы можете использовать Bonjour для одноранговой сети через Bluetooth. Дополнительные сведения см. В этом вопросе.

person Jim    schedule 09.05.2012
comment
Bonjour отлично подходит для обнаружения и установления соединения, но как отправить или получить последовательный поток данных через соединение? Что для этого есть API? Является ли браузер единственным приложением, которое может использовать соединение, или любое приложение может его использовать? - person Don; 17.05.2012
comment
Я не понимаю, зачем вы вводите в него браузер. Браузер не имеет ничего общего с Wi-Fi, Bluetooth или Bonjour. Вы читали то, на что ссылается этот вопрос? В одном из них есть описание, как установить соединение. - person Jim; 17.05.2012
comment
Я открыл браузер, потому что думал, что, возможно, HTTP был единственным протоколом, который Apple разрешила использовать при обмене данными по Wi-Fi. И я также подумал, что Apple может ограничить HTTP-связь для приложения браузера. Вот в чем суть моего вопроса. И вопрос, о котором вы говорите, касается связи Bluetooth, а не Wi-Fi, о чем я спрашиваю - так что нет, я не проверял ссылки. - person Don; 31.05.2012