objective-c - 结束/停止 NSFileHandle 套接字服务器

标签 objective-c cocoa sockets

我使用 NSFileHandle 创建了一个服务器,它工作得很好,问题是如何结束它。 (关闭它)我无法解除分配它,因为我正在使用 ARC 并且我真的必须找到一种方法来结束它。这是我启动服务器的方法:

socketPort = [[NSSocketPort alloc] initWithTCPPort:portNumber];
    int fd = [socketPort socket];
    fileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fd
                                    closeOnDealloc:YES];

谢谢!

最佳答案

怎么样[NSFileHandle closeFile] :

[fileHandle closeFile];
fileHandle = nil;    // ARC equiv of release

(我想 [NSFileHandle dealloc] 方法无论如何都会调用 closeFile,但直接调用它更能表明您的意图,并且更具防御性)。

如果您想阻止 socketPort 监听,那么这可能会起作用:

socketPort = nil;

警告: According to Apple您不应该将 NSSocketPortNSFileHandler 用于一般网络。

关于objective-c - 结束/停止 NSFileHandle 套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527839/

相关文章:

c - 固定超时后退出recv循环

objective-c - 将字符串更改为 double 返回 1

ios - 如何重叠 UITableViewCells?

ios - 有没有办法为 AVSpeechSynthesisVoice 切换语音性别?

objective-c - NSCollectionViewItem 中的自定义控件

javascript - Express 路由文件中的 Socket.io

ios - 将 UILabel 定位在 UIButton 的文本结尾之后?

IOS UITableViewCell 一旦选择并返回到页面取消选择 View

iphone - 在编译器中为 NSLog 设置一个标志不显示

java - Android 蓝牙套接字连接使用 AsyncTask 在后台接收数据