Что происходит с TCP и UDP (с многоадресной рассылкой) соединением, когда iOS приложение переходит в фоновый режим

Я создал несколько экспериментов:

Установка 1: Я создал приложение TCP Sender и приложение TCP Receiver.

Для этого эксперимента я запустил TCP Sender на устройстве iOS и TCP Receiver на другом устройстве iOS. Затем оба устройства были проверены на установление соединения, отправку и получение данных. Затем я перевел приложение TCP Receiver в фоновый режим. Приложение TCP Sender указало на потерю соединения и разбилось (да, я так и задумал).

Установка 2: Я создал приложение UDP Sender и приложение UDP Receiver.

Как и выше, я запустил приложение UDP Sender на устройстве iOS и приложение UDP Receiver на другом устройстве iOS. В приложении UDP Receiver я подписался на многоадресную группу и т.д. Я проверил, что приложение UDP Receiver получает данные из этой многоадресной группы, отправленные приложением UDP Sender. Затем я перевел приложение UDP Receiver в фоновый режим. Через 2 минуты я заставил приложение UDP Sender отправить еще одну порцию данных. Затем я полностью выхожу из приложения UDP Sender и выключаю устройство iOS. Затем я жду еще 2 минуты или больше, а затем запускаю приложение UDP Receiver из фонового режима. Приложение UDP Receiver действительно получило данные, которые были отправлены приложением UDP Sender до того, как оно было завершено.

В настройке1 я объясняю это тем, что TCP ориентирован на соединение.

В setup2, как я понимаю, UDP не имеет соединения. Любое объяснение, почему в setup2 это работает так, как в моем опыте? (Все еще получаю данные даже в фоновом режиме)

7
задан user523234 28 January 2012 в 17:10
поделиться