Полагаю, вам нужно использовать платформу DNSServiceDiscovery. У меня нет iPhone SDK, но поиск Google показывает, что он доступен на iPhone.
См. Сайт разработчика Apple для полной информации об API .
Я также включил некоторые (неполные) примеры кода:
#include <dns_sd.h>
int main(int argc, char *argv[])
{
DNSServiceRef sdRef;
DNSServiceErrorType res;
DNSServiceQueryRecord(
&sdRef, 0, 0,
"_xmpp-server._tcp.gmail.com",
kDNSServiceType_SRV,
kDNSServiceClass_IN,
callback,
NULL
);
DNSServiceProcessResult(sdRef);
DNSServiceRefDeallocate(sdRef);
}
Вам нужно будет предоставить собственную функцию обратного вызова и заметить, что поле rdata
, отправляемое обратному вызову, имеет проводной формат, поэтому вам придется самостоятельно декодировать необработанные данные из полей записи SRV.