-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