0

谁能告诉我以下代码中 istream 和 ostream 的功能以及我如何声明 istream 和 ostream,因为我从 net m 中挑选了代码,对代码了解不多

NSString *urlStr = @"192.168.178.26";
if (![urlStr isEqualToString:@""]) {
    NSURL *website = [NSURL URLWithString:urlStr];
    if (!website) {
        NSLog(@"%@ is not a valid URL");
        return;
    }
    NSHost *host = [NSHost hostWithName:[website host]];
    [NSStream getStreamsToHost:host port:3258 inputStream:&iStream  outputStream:&oStream];
    [iStream retain];
    [oStream retain];
    [iStream setDelegate:self];
    [oStream setDelegate:self];
    [iStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    [iStream open];
    [oStream open];
    /* ... */
}
4

1 回答 1

0

根据NSStream参考页iStream应该是一个NSInputStream*指针,oStream应该是一个NSOutputStream*。这&意味着您正在将地址传递给iStreamoStream方法-getStreamsToHost:...。这就是您在 C(或 Objective-C)中通过引用传递的方式。然后,该方法将尝试打开与您指定的主机的连接,如果成功,将为该主机的 ( iStream) 和来自 ( oStream) 的数据流创建流对象,并将它们返回到这些变量中。

于 2011-05-31T06:38:15.967 回答