0

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

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

谢谢!

4

1 回答 1

1

怎么样[NSFileHandle closeFile]

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

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

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

socketPort = nil;

警告: 根据 Apple的说法,您不应该使用NSSocketPortNSFileHandler用于一般网络。

于 2013-08-30T08:12:35.317 回答