我想使用iOS SDK解析DNS SRV记录。使用iOS SDK解析SRV记录
我已经尝试过Apple提供的高级Bonjour API,但它们不是我所需要的。现在我正在使用DNS SD。
void *processQueryForSRVRecord(void *record) {
DNSServiceRef sdRef;
int context;
printf("Setting up query for record: %s\n", record);
DNSServiceQueryRecord(&sdRef, 0, 0, record, kDNSServiceType_SRV, kDNSServiceClass_IN, callback, &context);
printf("Processing query for record: %s\n", record);
DNSServiceProcessResult(sdRef);
printf("Deallocating query for record: %s\n", record);
DNSServiceRefDeallocate(sdRef);
return NULL;
}
这个工作,只要它只有正确的SRV记录(例如:_xmpp-server._tcp.gmail.com),但是当记录输入错误,DNSServiceProcessResult(sdRef)进入一个无限循环。
有没有办法阻止DNSServiceProcessResult或必须我取消了调用它的线程?
它适合我。 – ssk
看起来可行。唯一不应该使用'dnsHost'而是使用有问题服务的全名。例如,用于SIP SRV记录的'_sips._tcp'.yourdomain.com – malex