我有一个 iPhone VOIP 应用程序,可以处理使用 BSD 套接字设置的多路传输和接收(即电话 session )。我希望它能够在后台响应传入请求,但从我对 iOS 4 文档的理解来看,我只能通过将属性设置为 NSStreamNetworkServiceTypeVoIP 在 NSStream 对象(或 CFRead/WriteStream)上执行此操作.这有点问题,因为我的系统是基于 UDP BSD 套接字的应用程序。一切都在单个 UDP 套接字上接收和发送。

我是否需要重写我的音频传输/接收核心来处理 NSStreams 或者有什么方法可以让 iOS 4 以类似于 NSStream 的方式处理我的 BSD 套接字?我认为这可能是一个问题,因为 NSStream 是基于事件的。

是否有可能检测到应用程序何时进入后台并构建一个临时 NSStream 对象,该对象将通过相关处理将数据传递给,然后继续正常运行?甚至可以创建 UDP NSStream 吗?

有任何想法吗?

最佳答案

您可以使用 CFSocketCreateWithNative() 从文件描述符创建套接字,然后使用 CFStreamCreatePairWithSocket() 创建一对流。它可能让您在 UDP 套接字上使用它们。除非您要求,否则流不会读取数据,您可能可以直接使用 FD。

不过祝你好运!

关于c++ - iOS 4 VOIP 应用程序在后台响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3478344/

10-09 13:42