Error de SIGPIPE en iOS4 cuando la aplicación ejecuta fondo y pantalla de bloqueo

Uso el socket BSD en mi aplicación para enviar y recibir datos en iphone4 (iOS4.1), hay tres situaciones en mi aplicación:

la aplicación se ejecuta en primer plano y bloqueos de pantalla, está bien.la aplicación se ejecuta en segundo plano y la pantalla no se bloquea, también está bien (uso NSStream para enviar y recibir datos para mantener la aplicación viva en segundo plano, funciona bien).la aplicación se ejecuta en segundo plano y bloqueos de pantalla, la aplicación funciona bien pero siempre recibe el error SIGPIPE cuando la aplicación intenta llamar a sendto () o send () a través del socket UDP o TCP.

Busco mucho pero no obtengo nada útil, deaquí Sé lo que es SIGPIPE, y uso setsockopt (sock, SOL_SOCKET, SO_NOSIGPIPE, (void *) & on, sizeof (int)) para evitar que la aplicación salga de forma anormal. pero todavía no sé por qué este error ocurrió solo en la situación 3 y cómo enviar datos normalmente a través del socket bsd en esta situación.

He intentado renovar y volver a conectar, pero no funciona, todavía aparece el error SIGPIPE. Creo que tal vez todos los zócalos BSD no pueden obtener acceso interno en la situación 3 (hasta donde sabemos que el zócalo BSD no puede activar la conexión wifi o EDGE en iOS), ¿alguien puede ayudarme o darme algunas sugerencias? y lo siento por mi Inglés roto ^. ^, Muchas gracias.