我正在慢慢学习为网络编写代码并且已经走到了一个死胡同:我认为通过访问 nas 驱动器的 TXT 记录,我可以看到它提供的卷,如下所述:
http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt
但是当我运行这段代码时:
browse = [[NSNetServiceBrowser alloc]init];
[browse setDelegate:self];
[browse searchForServicesOfType:@"_afpovertcp._tcp." inDomain:@"local"];
为回调设置搜索服务和以下内容:
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing
{
NSLog(@"Found: %@",aNetService);
CFNetServiceRef aCFNetRef;
aCFNetRef = CFNetServiceCreate(kCFAllocatorDefault, (__bridge CFStringRef)[aNetService domain],(__bridge CFStringRef) [aNetService type], (__bridge CFStringRef)[aNetService name], 0);
CFStreamError error;
if (CFNetServiceResolveWithTimeout(aCFNetRef, timeOut, &error)) {
NSLog(@"CFNET TXT: %@",CFNetServiceGetTXTData(aCFNetRef));
}
}
NSLog(@"TXTRecord: %@",[NSNetService dictionaryFromTXTRecordData:[aNetService TXTRecordData]]);
if (!moreComing) {
[browse stop];
[refreshButton setEnabled:YES];
[self reloadInputViews];
}
}
这些nslog()
行显示找到的服务的 TXT 记录是空的:我得到了一些类似的内容
Found: <NSNetService 0x6a90fd0> local. _afpovertcp._tcp. myLocalSVR
CFNET TXT: <00>
TXTRecord: (null)
有人可以说我的代码是否正确,还是只是这里的本地 nas 不包含 TXT 记录 - 但从我读过的内容来看,情况并非如此。我还读到需要在 TXT 记录被咳出之前解决该服务,但我希望这就是CFNetServiceResolveWithTimeout()
正在做的事情......
谢谢!
托德。