Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios BSD插座不';在iphone3g环境中,你不能表现得很好_Ios_Iphone_Sockets_Network Programming - Fatal编程技术网

Ios BSD插座不';在iphone3g环境中,你不能表现得很好

Ios BSD插座不';在iphone3g环境中,你不能表现得很好,ios,iphone,sockets,network-programming,Ios,Iphone,Sockets,Network Programming,我注意到,很多次在为iPhone3G开发时,BSD套接字功能都会失败。我当时还注意到,3G天线甚至没有打开,也没有WIFI接入来备份网络呼叫(因此,它没有打开以支持网络请求似乎很可笑)。。这一信息通过SDK中苹果公司的一个名为连通性测试(Connectivity Test)或类似的应用程序进行了验证 基本上,如果你加载Safari或其他东西,那么快速加载应用程序就可以了。。当然,这并不理想。显然,对于苹果来说,gethostbyname()或类似的东西绝对不是打开天线的理由 我就此联系了苹果公司

我注意到,很多次在为iPhone3G开发时,BSD套接字功能都会失败。我当时还注意到,3G天线甚至没有打开,也没有WIFI接入来备份网络呼叫(因此,它没有打开以支持网络请求似乎很可笑)。。这一信息通过SDK中苹果公司的一个名为连通性测试(Connectivity Test)或类似的应用程序进行了验证

基本上,如果你加载Safari或其他东西,那么快速加载应用程序就可以了。。当然,这并不理想。显然,对于苹果来说,gethostbyname()或类似的东西绝对不是打开天线的理由

我就此联系了苹果公司,他们说BSD功能不会打开天线,但调用所有Objective-C网络功能会打开天线。我想要可移植的代码,那么有没有办法保持我现有的BSD设置?我真的不喜欢用Objective-C编码,所以如果有人知道如何解决这个问题,那就太棒了。

苹果建议你用它来代替直接的BSD套接字。它们特别警告使用BSD套接字:

虽然BSD(POSIX)网络API 在iPhone操作系统中可用,您应该 避免使用它们。如果你沟通 直接使用插座,某些 iPhone操作系统的网络功能, 如VPN随需应变,不工作。 使用CFStream中提供的API 而不是套接字添加


请注意,CFNetwork等不是Objective-C,而是几乎所有东西都是C。

Kyle,回答您在编辑评论中提出的问题:没有理由将您的问题标记为“编程”——如果它与编程没有某种关系,您不应该将其发布到“编程”。这就是为什么我去掉了那个标签。明白了。也许这不应该被允许,这样可以节省每个人的时间。我想知道为什么他们忽略了这样一个事实,那就是它不能打开ant.CFNetwork,那么它就是了!。。然后回到其他人的标准,哈哈。@Kyle:公平地说,你能像在Android、WebOS或WindowsPhone7系列上那样使用你的BSD套接字代码吗?很难让像这样的元素真正独立于平台(与数据模型或核心逻辑代码相反)。Android NDK和WebOS PDK yea,但我认为7系列将为开发人员提供大量移植,以处理所有托管代码和.NET库。我不确定他们是否会允许DLL查找,但我怀疑这会让我们陷入噩梦。