Я постепенно учусь кодировать для сетей и зашел в тупик: я подумал, что, получив доступ к TXT Record диска nas, я смогу увидеть предлагаемые им тома, как описано на:
http://files.dns -sd.org / чернового чеширский-dnsext-ДНС для 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 Record - хотя из того, что я прочитал, однако, это просто не должно иметь место. Я также читал, что служба должна быть разрешена до того, как TXT Record закашлятся, но я надеялся, что это то, что делает CFNetServiceResolveWithTimeout()
...
Спасибо!
Todd.