Как запустить UDP-сокеты в фоновом режиме в приложении для iPhone? - PullRequest
6 голосов
/ 21 октября 2010

Приложение для моего iPhone использует AsyncUdpSocket для обработки сокета UDP.Однако, когда мое приложение переходит в фоновый режим в iOS 4.0 и возвращается на передний план, я получаю следующую ошибку:

Приложение MyAppName аварийно завершилось с сигналом 13: Сломанный канал

Это потому, что мои сокеты отключены, когда мое приложение переходит в фоновый режим.

Как я могу избежать этого и запускать сокеты UDP в фоновом режиме?

1 Ответ

2 голосов
/ 25 октября 2010

Это не связано с UDP. EPIPE происходит только для «потоковых» файловых дескрипторов - каналов Unix и TCP-сокетов.

Я предполагаю, что у вас есть какое-то управляющее TCP-соединение, которое отключается на удаленном конце, когда вы переходите в фоновый режим. Вам нужно выяснить, как сохранить его работоспособным или повторно подключиться, когда приложение проснется.

Вы также можете обрабатывать (или игнорировать) EPIPE, см. sigaction(2), и реагировать на него соответственно при возврате из write(2).

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