Erro SIGPIPE no iOS4 quando o aplicativo está sendo executado em segundo plano e na tela de bloqueio

Eu uso o soquete BSD no meu aplicativo para enviar e receber dados no iphone4 (iOS4.1), há três situações no meu aplicativo:

aplicativo está sendo executado em primeiro plano e bloqueios de tela, tudo bem.o aplicativo está sendo executado em segundo plano e a tela não é bloqueada, também está bom (eu uso o NSStream para enviar e receber dados para manter o aplicativo ativo em segundo plano, funciona bem.)o aplicativo está sendo executado em segundo plano e bloqueios de tela, o aplicativo está funcionando bem, mas sempre obtém o erro SIGPIPE quando o aplicativo tenta chamar sendto () ou send () através do soquete UDP ou TCP.

Eu pesquiso muito, mas não obtenho nada útil, deaqui Eu sei o que é SIGPIPE e uso setsockopt (sock, SOL_SOCKET, SO_NOSIGPIPE, (void *) & on, sizeof (int)) para evitar a saída de aplicativos de maneira anormal. mas ainda não sei por que esse erro ocorreu apenas na situação 3 e como enviar dados normalmente através do soquete bsd nessa situação.

Eu tentei renovar e reconectar, mas não funciona, ainda recebo o erro SIGPIPE. Acho que talvez todos os soquetes BSD não consigam acesso interno na situação 3 (tanto quanto sabemos que o soquete BSD não pode ativar a conexão wifi ou EDGE no iOS), alguém pode me ajudar ou me dar algumas sugestões? e desculpe pelo meu inglês quebrado ^. ^, muito obrigado.

questionAnswers(1)

yourAnswerToTheQuestion