-1

我正在使用 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()不取消阻止。

4

1 回答 1

1

听起来你还没有真正尝试过任何东西。关闭它。将recvfrom()退出并出现错误。

于 2012-06-15T10:14:33.057 回答