如何在iPhone应用程序中在后台运行UDP套接字?

时间:2010-10-21 14:07:52

标签: iphone objective-c sockets udp

我的iPhone应用程序正在使用AsyncUdpSocket来处理UDP套接字。但是,当我的应用程序进入iOS 4.0的后台并返回到前台时,我收到以下错误:

  

应用程序'MyAppName'异常退出,信号13:管道损坏

这是因为当我的应用程序进入后台时,我的套接字断开连接。

如何避免这种情况并在后台运行UDP套接字?

1 个答案:

答案 0 :(得分:2)

这与UDP无关。 EPIPE仅适用于“流”文件描述符 - Unix管道和TCP套接字。

我猜你有某种控制TCP连接,当你进入后台时,它会在远程端超时。您需要弄清楚如何在应用程序唤醒时保持活动或重新连接。

您也可以处理(或忽略)EPIPE,请参阅sigaction(2),并在write(2)返回后对其作出相应的反应。