0

This sounds really odd, but I'm wondering if anyone else has run into this situation on IOS 8.

I have an app that receives low latency audio via UDP using GCDAsyncUdpSocket, and it receives about a 200 byte packet every 20ms. Works great in the foreground, background, etc.

However, if I slide up the Control Center on IOS 8+ while my app is running, the responsiveness of the socket becomes extremely bursty (I get bursts of packets with about 350 to 400ms pauses every half second) for the next 40 seconds or so, then it goes away and begins to work normally. Debugging into the GCDAsyncUDPSocket calls I can see that the GCD event handler is called at this delayed interval (it doesn't seem to be my code).

If I use my app via a cellular connection then it is perfectly fine during the Control Center slide up (no pausing/delaying). This is only a situation with WiFi.

This is not a problem on IOS 7 or IOS 6.

It happens on all models of the iPhone from iPhone 4 through the 6 Plus.

Has anyone else seen this problem? Any suggestions? I'd hate to do it, but should I look at a non-GCD based networking API?

Chuck D
  • 313
  • 2
  • 13
  • Just as an additional note, I just replaced all the GCDAsyncUDPSocket called with low level POSIX sockets, and the problem still exists (so it's not a problem the GCDAsyncUdpSocket). – Chuck D Oct 21 '14 at 23:09
  • Another update.... this appears to be an IOS 8+ bug. Try the following test on an iPhone 5 or 5S. The new 6's will 'hide' the bug, but it still exists: Run OOkla SpeedTest to get a baseline over WiFi. Then, before running the speed test again, slide up the Control Center and slide it back down. Immediately run SpeedTest again, and you'll notice the network is very jerky, and almost half the speed it was before. This condition lasts for 35 to 40 seconds, then goes away on its own. – Chuck D Oct 22 '14 at 14:40
  • Did you find any solution? because I am having the same issue. I am receiving UDP packets in naive C and even if I switch tab in my storyboard it chock-up packets receiving process for a half a second or a second. – Bhavesh Lathigara Nov 04 '14 at 10:47

0 Answers0