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

标签 iphone objective-c sockets udp

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

Application 'MyAppName' exited abnormally with signal 13: Broken pipe

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

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

最佳答案

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

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

您还可以处理(或忽略)EPIPE,请参阅 sigaction(2) ,并在从 write(2) 返回时相应地使用react.

关于iphone - 如何在 iPhone 应用程序的后台运行 UDP 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3988333/

相关文章:

iphone - 从应用程序密码退出

objective-c - 设置相对于设备尺寸的自动布局约束

java - 尝试与 Web 服务通信时遇到 "No route to host"错误

iphone - iOS Facebook 无法将源图像发布到墙上只能发布链接

iphone - UITableView自定义单元格非常慢

iphone - iOS:在 iOS 应用程序中处理下载的数据

php - PHP套接字程序挂起

sockets - 如何使用 UDP 找到正确的发送速度?

iphone - 如何使 NSUserDefault 设置与应用程序内设置保持同步?

objective-c - Cocos2D 帮助 : How to rotate a sprite continuously and generate child sprites in the rotating sprite