-1
我正在使用C套接字为iPhone做应用程序。在某些时候,我正在执行recvfrom
单独的NSThread
(这是阻止),我不知道如何强制此操作“解锁”并正常退出线程。拨打shutdown()
或close()
不会改变任何内容,recvfrom
仍然挂起。有没有办法将它保持为阻塞套接字并强制它正确关闭并退出线程?如何关闭在rcv上阻塞的UDP套接字
因为我指责没有尝试任何这是我的一段代码不会引起recvfrom
为“解锁”:
这就是我现在所拥有的:
- (void) stopScan
{
NSLog(@"stopScan !!!");
[activityIndicator stopAnimating];
shutdown(broadcastSocket, SHUT_RDWR);
close(broadcastSocket);
[discoveryThread cancel];
[discoveryThread release];
discoveryThread = nil;
[scanTimer invalidate];
broadcastSocket = 0;
scanTimer = nil;
}
呼叫只是shutdown()
或close()
也不解锁。
好的。我是个白痴。谢谢你,先生。 – solgar
因此,为了给这个问题添加更多答案,我似乎删除了错误检查代码,并且我的应用程序通过recvfrom的连续调用进入了无限循环,并在我的应用程序的不同位置导致了其他问题。 – solgar
@solgar所以不要那样做;-) – EJP