Errore di SIGPIPE in iOS4 quando applicazione è in esecuzione schermo di sfondo e di blocco

StackOverflow https://stackoverflow.com/questions/4085368

Domanda

Io uso presa BSD nella mia app per inviare e ricevere dati su iphone4 (iOS4.1), ci sono tre situazioni in mio app:

  1. applicazione è in esecuzione in primo piano e di schermo si blocca, va bene.
  2. applicazione è in esecuzione in background e does't schermata di blocco, va bene anche (io uso NSStream per inviare e ricevere dati per mantenere vivi app in background, funziona benissimo.)
  3. applicazione è in esecuzione in background e schermo si blocca, applicazione in esecuzione bene, ma sempre ottenere l'errore SIGPIPE quando un'applicazione tenta di chiamare sendto () o send () tramite socket UDP o TCP.

che cerco molto ma ottengo niente utile, da qui so cosa SIGPIPE è, e io uso setsockopt (calzino, SOL_SOCKET, SO_NOSIGPIPE, (void *) e su, sizeof (int)) per evitare app uscita anomalo. ma io ancora non so perché questo errore si è verificato solo in situazione di 3 e su come inviare i dati normalmente attraverso presa BSD in questa situazione.


Devo cercare di rinnovare e riconnessione ma does't lavoro, è ancora ottenere l'errore SIGPIPE.   Penso che forse che tutti i socket BSD non possono avere accesso interno a situazione 3 (per quanto sappiamo che presa BSD non può wifi attivare o EDGE collegamento in iOS), chiunque può aiutarmi o darmi qualche suggerimento? e scusa per il mio inglese rotto ^. ^, ringrazio molto.

È stato utile?

Soluzione

I ricerca su Google e ho trovato la mia domanda 10 mesi prima, che è interessante. Ho già avuto una soluzione per tenere applicazione in esecuzione in background, e setsockopt (calzino, SOL_SOCKET, SO_NOSIGPIPE, (void *) e su, sizeof (int)) è utile che ignorerà SIGPIPE 13 di errore.

questo errore si verifica quando la presa già perso connessione fisica e ancora tenta di scrivere i dati, tramite WiFi, 3G o accessorio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top