SIGPIPE error en iOS4 cuando la aplicación se está ejecutando pantalla de fondo y bloqueo
-
28-09-2019 - |
Pregunta
Yo uso de conectores BSD en mi aplicación para enviar y recibir datos sobre iphone4 (iOS4.1), hay tres situaciones en mi aplicación:
- aplicación se está ejecutando en primer plano y pantalla cerraduras, está bien.
- aplicación se está ejecutando en segundo plano y does't pantalla de bloqueo, que está muy bien también (yo uso NSStream para enviar y recibir datos de aplicación para mantener viva en el fondo, que trabaja muy bien.)
- aplicación se está ejecutando en el fondo de pantalla y cerraduras, aplicación funcionando bien, pero siempre obtener el error cuando la aplicación SIGPIPE intento de llamada sendto () o send () a través de UDP o TCP zócalo.
busco mucho, pero entiendo nada útil, desde aquí sé lo que es SIGPIPE, y yo uso setsockopt (calcetín, SOL_SOCKET, SO_NOSIGPIPE, (void *) y en adelante, sizeof (int)) para evitar la salida de aplicación de manera anormal. pero todavía no sé por qué se produjo este error sólo en la situación 3 y cómo enviar los datos normalmente a través de conectores BSD en esta situación.
Tengo intento para renovar y volver a conectar pero does't de trabajo, todavía sale error SIGPIPE. Creo que tal vez que todos los sockets BSD no pueden obtener acceso interno en la situación 3 (Por lo que sabemos que de conectores BSD no puede activar o conexión wifi en IOS EDGE), cualquier persona puede ayudarme o darme algunas sugerencias? y lo siento por mi Inglés Broken ^. ^, Muchas gracias.
Solución
buscar en Google y encontró a mi propia pregunta 10 meses antes, eso es interesante. Ya tenía una solución para mantener aplicación que se ejecuta en segundo plano, y setsockopt (calcetín, SOL_SOCKET, SO_NOSIGPIPE, (void *) y en adelante, sizeof (int)) es útil que ignorará el error SIGPIPE 13.
ocurre este error cuando el socket ya perdió la conexión física y todavía tratan de datos de escritura, a través de Wi-Fi, 3G o accesorios.