ios6.0.1 recvfrom总是在iphone上阻塞

时间:2012-11-20 14:25:40

标签: sockets ios6 udp

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

它可以在iOS 4/5上正常运行,但是当我们在iOS 6.0.1(iPhone)上测试它时它不起作用,在iOS 6.0和模拟器的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);

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

发现了Bug!我们没有收到来自Cellular的UDP数据包,但是TCP是可以通过的,所以recvfrom无限地阻塞。