使用MYNetwork库浏览服务(bonjour)时,txtRecord为null

时间:2011-12-01 11:23:56

标签: objective-c cocoa networking bonjour

我目前正在使用MYNetwork库Bonjour类,并且在发现txt记录时遇到问题。当一个新服务出现时,它的txt记录每次都为空。

在我的服务器端,我以这种方式设置txt记录:

self.server = [[MYBonjourRegistration alloc] initWithServiceType: @"_blipecho._tcp." port:9121];
[server setString:@"Cyprian" forTXTKey:@"Name"];
[server start];

然后在浏览器上我发现并记录数据:

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
    {
        if ([keyPath isEqual:@"services"]) {

            NSSet *newServices = (NSSet*)[change objectForKey:@"new"];

            if(newServices){

                MYBonjourService *service;
                for (service in newServices){
                    textView.text  = [NSString stringWithFormat:@"%@\nNew user: %@ (%@)", textView.text, service.name, [service txtRecord]];

                }
            }
    }

我为txtRecord得到null。

1 个答案:

答案 0 :(得分:0)

好的,得到了​​答案。

问题是新发现的服务尚未解决,因此没有数据。

首先必须解决该服务。

-(void)resolveService:(MYBonjourService*)service{

    service.addressLookup.continuous = YES;
    [service.addressLookup addObserver: self
                            forKeyPath: @"addresses"
                               options: NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
                               context: NULL];
    [service queryForRecord: kDNSServiceType_NULL];
}