我一直在处理一个NSStreamDelegate
,我已经实现了回调函数,并像这样初始化输入和输出流...
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStringRef host = CFSTR("74.125.224.72");
UInt32 port = 2270;
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &inputStream, &writeStream);
if (writeStream && inputStream) {
inputStream = (__bridge NSInputStream *)readStream;
[inputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
outputStream = (__bridge NSOutputStream *)writeStream;
[outputStream setDelegate:self];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream open];
}
即使已经打开了两个流,callback(stream:(NSStream *)theStream handleEvent:)
回调函数对于这两个流也没有以NSStreamEventOpenCompleted
的事件被调用。有人能帮我看看我错在哪里吗?或者NSStreamEventOpenCompleted
不会被调用的可能性是什么?我在文档中看到过,如果打开失败,它不会调用此操作,那么为什么流的打开会失败呢?有任何想法吗?谢谢你的帮助。
[NSRunLoop mainRunLoop]
。 - itsji10dra