我注意到,在为iPhone 3G开发时,BSD套接字功能会多​​次失败。我当时还注意到,3G天线甚至都没有打开,也没有WIFI接入来备份网络调用(因此,它没有打开以支持网络请求似乎很可笑)。此信息是已通过SDK中来自Apple的应用程序(称为“连通性测试”)进行了验证。

基本上,如果您加载Safari之类的东西,然后快速加载该应用程序就可以了。.当然,这不是理想的选择。显然,对于苹果公司来说,gethostbyname()或类似的东西绝不是打开天线的理由。

我联系了苹果公司,他们说BSD功能不会打开天线,而是调用所有Objective-C CFNetwork功能。我想要可移植的代码,那么有没有办法保持现有的BSD设置?我真的不喜欢使用Objective-C进行编码,因此,如果有人知道解决方法,那就太好了。

最佳答案

Apple建议您使用CFStream Socket Additions代替直接的BSD插槽。他们特别警告要使用BSD套接字here:



注意,CFNetwork之类的不是Objective-C,而是几乎所有内容都为C。

10-08 07:00