Как приложения для iPhone взаимодействуют с сервером?

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

Вы не должны отвечать на все вопросы; любая справка ценится!

  1. Как приложения для iPhone взаимодействуют с сервером?
  2. Существует ли конкретный вид сервера, который я должен использовать для взаимодействия приложения для iPhone с сервером?
  3. Если нет никакого конкретного вида сервера затем, какой сервер может использоваться?
  4. Каковы их преимущества и недостатки?
  5. Что должно приложение для iPhone (который является клиентом), делают для взаимодействия с сервером?
  6. Как сервер знает который iPhone отправить данные в?
  7. Что сервер должен сделать для взаимодействия с приложением для iPhone (клиент)?
14
задан Michael Currie 11 September 2015 в 00:44
поделиться

2 ответа

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

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

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

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

12
ответ дан 1 December 2019 в 13:58
поделиться

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

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

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

TCP / IP и UDP / IP составляют основу интернет-коммуникаций.

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

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

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

4
ответ дан 1 December 2019 в 13:58
поделиться