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

发布于 2024-09-29 03:04:50 字数 371 浏览 2 评论 0原文

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

应用程序“MyAppName”异常退出,并显示信号 13:管道损坏

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

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

My iPhone application is using AsyncUdpSocket to handle a UDP socket. However, when my application goes into the background in iOS 4.0 and returns to the foreground, I am getting the following error:

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

This is because my sockets are disconnected when my application goes to the background.

How can I avoid this and run UDP sockets in the background?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

删除会话 2024-10-06 03:04:50

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

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

您还可以处理(或忽略)EPIPE,请参阅sigaction(2),并在从 write(2)< /a>.

This is not related to UDP. EPIPE only happens for "stream" file descriptors - Unix pipes and TCP sockets.

I'm guessing you have some sort of a control TCP connection which times out on the remote end when you go into background. You need to figure out how to keep it alive or re-connect when the app wakes up.

You can also handle (or ignore) EPIPE, see sigaction(2), and react to it accordingly on return from write(2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文