ios6.0.1 recvfrom always blocks on iphone



我们创建了一个iOS应用程序,该应用程序在一个线程(我们使用bsd套接字API)中执行UDP发送操作(将请求发送到服务器),另一个线程在同一套接字上执行UDP接收操作(从服务器接收响应)。

它在iOS 4/5上正常工作,但是当我们在iOS 6.0.1(iPhone)上测试它时,它不起作用,在带有iOS 6.0.1和模拟器的iPad上没有发现问题。

该应用程序无限recvfrom阻止,我们确定有来自服务器的UDP响应。似乎和这个问题是一样的:https://groups.google.com/forum/#!msg/cocoaasyncsocket/rWokj2VO3VE/f-mZ6xWEUhkJ。

代码片段:

char recvData[UDP_PACKAGE_LENGTH];
bzero(recvData, UDP_PACKAGE_LENGTH);
struct sockaddr_in fromAddr;
uint32_t len = sizeof(fromAddr);
int isHead = recvfrom(self->serverSock, recvData, UDP_PACKAGE_LENGTH, 0, (struct sockaddr*)(&fromAddr), &len);

感谢您的任何帮助。

发现错误!我们没有从蜂窝接收UDP数据包,但是TCP是可以通过的,因此recvfrom块无限。

最新更新