我正在使用 C 套接字为 iPhone 做应用程序。在某些时候,我正在recvfrom
单独执行NSThread
(这是阻塞),我不知道如何强制此操作“解除阻塞”并优雅地退出线程。呼叫shutdown()
或close()
没有改变任何东西,recvfrom
仍然挂起。有没有办法让它保持阻塞套接字并强制它正确关闭并退出线程?
由于我被指责没有尝试任何事情,这是我的一段代码,不会导致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()
不取消阻止。