iPhone CFSocket Входящие / Исходящие сообщения - PullRequest
0 голосов
/ 05 марта 2012

Насколько я понимаю, вы не можете установить соединение между двумя iPhone (поправьте меня, если я ошибаюсь). Поэтому я хотел бы, чтобы между клиентским приложением находился один сервер, который принимает сообщения и перераспределяет их соответствующим лицам. По сути, приложение позволит людям иметь общую карту с указанием их местоположения, и каждый может ее комментировать.

1) Я читал и изучал класс CFStream, но мне любопытно узнать, может быть, лучше просто использовать функции C send () и recv (). Они почти кажутся намного проще в использовании. Что CFStream предлагает по сравнению с собственными функциями сокета C, которые делают его лучшим вариантом?

2) Поскольку мне нужно, чтобы телефон активно прослушивал обновленные общие местоположения пользователей / новые аннотации от других пользователей, я планировал периодически опрашивать телефон на сервере на предмет «новостей» от других пользователей (скажем, каждую минуту или две). ). Есть ли в любом случае телефон мог раскрутить новую ветку в приложении, которое постоянно ждет входящий трафик? Было бы проще, если бы пользователь мог аннотировать карту, отправлять ее на сервер, который немедленно обновляет соответствующие карты пользователей.

Я использовал пример кода сокета из книги iPhone SDK Джонатана Здзиарски от O'Rielly Media, чтобы просто попытаться отправить сообщения между сервером и эмулятором iPhone (классический сервер / клиент стука и стука). Однако после отправки 1 или 2 сообщений сервер застревает «при получении». Код отлично работает, когда не отправляется с эмулятора, так как я могу, похоже, спамить функцию отправки клиента и каждый раз получать ответ от сервера. Может ли сервер зависать, потому что я использую send () и recv () вместо потока CFRead и Write?

1 Ответ

0 голосов
/ 05 марта 2012

Вы можете подключать приложения iPhone к сокету, используя bonjour или даже GameKit (именно это я и использую, потому что он управляет всеми данными для вас).

...