iOS SDK를 사용하여 DNS SRV 레코드를 해결하고 싶습니다.iOS SDK를 사용하여 SRV 레코드 해결
저는 Apple이 제공하는 고급 Bonjour API를 이미 시도했지만, 필요한 것은 아닙니다. 이제 DNS SD를 사용하고 있습니다.
는 (예 : _xmpp-server._tcp.gmail.com)에만 올바른 SRV 레코드를수록이 한 일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;
}
하지만 기록이 잘못 입력 된 경우는, DNSServiceProcessResult (SDREF)는 무한 루프로 간다 .
DNSServiceProcessResult를 중지 할 방법이 있습니까? 은이어야합니다.이 스레드를 호출하는 스레드를 취소 하시겠습니까?
나를 위해 작동합니다. – ssk
작동합니다. 유일한 것은 'dnsHost'가 아니라 해당 서비스의 전체 이름을 사용해야한다는 것입니다. 예를 들어, SIP SRV 레코드의 경우 '_sips._tcp'.yourdomain.com – malex