4

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

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

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

有任何想法吗?

4

1 回答 1

5

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

祝你好运!

于 2010-08-13T18:47:56.260 回答