时间:2010-07-25 16:30:57

标签: iphone objective-c sockets udp

1 个答案:

答案 0 :(得分:4)

在操作系统中,IOS可以拆除3G TCP / IP网络接口,一般情况下出于节能原因,如果没有流量通过它。当使用BSD套接字时(例如,对于UDP,因为没有UDP苹果网络框架),没有公布的OS调用来确保3G网络接口正常运行。但是在Apple的CFSocketStream类内部存在私有Apple调用,唤醒了界面。

所以解决方案似乎是在某个地方打开CFSocketStream。这将唤醒界面一段时间。只要您通过CFSocketStream每分钟发送一次数据,连接和网络接口就会保持运行状态。

这并不是那么有吸引力,因为它只是副作用。但它似乎是目前唯一的解决方案。