Как приложения iphone взаимодействуют с сервером? - PullRequest
14 голосов
/ 17 июля 2010

Я - новый программист, который плохо знаком с разработкой iPhone и серверными вещами.У меня много вопросов.

Вам не нужно отвечать на все вопросы;любая помощь приветствуется!

  1. Как приложения iPhone взаимодействуют с сервером?
  2. Существует ли какой-либо конкретный тип сервера, который я должен использовать для взаимодействия приложения iphone с сервером?* Если нет определенного типа сервера, то какой тип сервера можно использовать?
  3. Каковы их преимущества и недостатки?
  4. Что должно делать приложение для iPhone (которое является клиентом)Чтобы взаимодействовать с сервером?
  5. Как сервер узнает, на какой iPhone отправлять данные?
  6. Что должен делать сервер для взаимодействия с приложением iPhone (клиентом)?

Ответы [ 2 ]

12 голосов
/ 17 июля 2010

Лучше всего, чтобы ваш iPhone делал веб-запросы от веб-сервера.Ваше приложение для iPhone работает так же, как веб-браузер, отправляет http-запросы на веб-сервер и анализирует ответ.

Сейчас я создаю приложение, которое использует написанные мной PHP-скрипты, которые выполняют работу с базой данных,и т.д., и вернуть объекты JSON.Это не фантастика - я мог бы создать целый веб-сервис SOAP или RPC, но я этого не делал, он просто делает GET-запросы с аргументами строки запроса.

Есть удобные библиотеки, которые вы хотите знатьоколо.Google "iPhone JSON", чтобы найти библиотеку JSON, написанную Стигом Браутасетом, это то, что большинство людей используют.Кроме того, вместо того, чтобы пройти через все циклы, которые требуются для встроенной в веб-клиент среды iPhone, перейдите к ASIHTTPRequest, очень мощной и НАМНОГО упрощенной библиотеке веб-клиентов.

Как правило, вы хотите сделатькак можно больше обработки на сервере.Например, в моем приложении есть место, где я ищу события, происходящие в заданном пользователем диапазоне их локальных координат («в пределах 10 миль от меня»).Я написал PHP, чтобы построить ограничивающую рамку широты и долготы, и на основе этого делал запрос из базы данных.Это гораздо быстрее, чем сваливать кучу событий и затем просить Базовое Местоположение вычислить их расстояние от того места, где я нахожусь.

4 голосов
/ 17 июля 2010

Вы задали довольно много вопросов, поэтому я постараюсь ответить на них все:

Во-первых, вам нужно немного прояснить, о каком типе сервера вы говорите?Почтовый сервер, веб-сервер, сервер lolcat, это зависит.

На базовом уровне iphone связывается через Интернет.Интернет использует Интернет-протокол, и на основе IP-протокола построены два стандартных протокола: протокол управления передачей и протокол дейтаграмм пользователя.Каждый из них имеет свои собственные применения и функции.

TCP / IP и UDP / IP составляют основу интернет-связи.

Более конкретный прикладной протокол построен поверх этих двух интернет-протоколов, сконкретный формат для данного приложения.Например, HTTP является стандартным протоколом для передачи HTML и другой веб-информации между веб-сервером клиенту веб-браузера через TCP.

Итак, ваш iPhone будет использовать любой протокол, необходимый для связи с сервером.Для более общего взаимодействия с сервером в iOS SDK предусмотрены методы для создания сообщений (например, если вы хотите сделать HTTP-запрос к веб-серверу, вы можете использовать initWithContentsOfURL для отправки запроса GET).

Есливы создали собственный сервер, затем вам нужно будет создать требуемый протокол сообщений на iphone и отправить его на сервер, используя TCP или UDP (все, что ожидает ваш пользовательский сервер).

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