我有一个iPhone VOIP应用程序,可以应对使用BSD套接字设置的多重传输和接收(即电话会议)。我希望它能够在后台响应传入的请求但是从我能理解的iOS 4文档中我只能通过将属性设置为NSStreamNetworkServiceTypeVoIP来对NSStream对象(或CFRead / WriteStream)执行此操作。这是一个问题,因为我的系统是基于UDP BSD套接字的应用程序。一切都在一个UDP套接字上接收和发送。
我是否需要重新编写我的音频发送/接收内核来处理NSStreams,还是有办法让iOS 4以类似于NSStream的方式处理我的BSD套接字?我认为这可能是一个问题,因为NSStream是基于事件的。
是否可以检测应用程序何时进入后台并构建一个临时NSStream对象,该对象将通过相关处理传递数据然后继续正常?甚至可以创建UDP NSStream吗?
有什么想法吗?
答案 0 :(得分:5)
您可以使用CFSocketCreateWithNative()从文件描述符创建套接字,然后使用CFStreamCreatePairWithSocket()创建一对流。它可能允许您在UDP套接字上使用它们。如果除非您询问,流不会读取数据,您可以直接使用FD。
祝你好运!