我的问题实际上并不是什么是在后台应用程序时保持UDP
套接字存活的代码,而是对苹果开发者网站中的文档的混淆。
根据apple developer guide,如果我将kCFStreamNetworkServiceType
设置为kCFStreamNetworkServiceTypeVoIP
,则此套接字将在后台应用时由系统专门管理。
在CocoaAsyncSocket library中,他们报告此设置在UDP
套接字中无效,但仅在TCP
套接字中有效。我还测试了本地CFReadSteam
接口的这个选项,但是当app在后台时套接字没有活动。但苹果开发者网站从未提及它。
这是真的,只有tcp套接字可以在后台保持活动状态,或者我的代码中有任何错误吗?