Ошибка SIGPIPE в iOS4, когда приложение работает в фоновом режиме и на экране блокировки

Я использую разъем BSD в своем приложении для отправки и получения данных на iphone4 (iOS4.1), в моем приложении есть три ситуации:

приложение работает на переднем плане и блокировки экрана, это нормально.приложение работает в фоновом режиме и экран не блокируется, это тоже нормально (я использую NSStream для отправки и получения данных для поддержания приложения в фоновом режиме, он работает нормально).приложение работает в фоновом режиме и блокирует экран, приложение работает нормально, но всегда выдает ошибку SIGPIPE, когда приложение пытается вызвать sendto () или send () через сокет UDP или TCP.

Я много ищу, но ничего полезного отВот я знаю, что такое SIGPIPE, и я использую setsockopt (sock, SOL_SOCKET, SO_NOSIGPIPE, (void *) и on, sizeof (int)), чтобы избежать неправильного выхода из приложения. но я до сих пор не знаю, почему эта ошибка произошла только в ситуации 3 и как нормально отправлять данные через сокет bsd в этой ситуации.

Я попытался обновить и восстановить соединение, но оно не работает, оно все еще получает ошибку SIGPIPE. Я думаю, возможно, что все сокеты BSD не могут получить внутренний доступ в ситуации 3 (насколько мы знаем, что сокет BSD не может активировать Wi-Fi или EDGE-соединение в iOS), Кто-нибудь может мне помочь или дать мне несколько советов? и извините за мой сломанный английский ^. ^, Большое спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос