使用iPhone SDK进行SRV记录查找

ada*_*dam 4 iphone dns cocoa-touch objective-c

在Windows或Mac OS X终端中,如果键入...

nslookup -type=SRV _xmpp-server._tcp.gmail.com
Run Code Online (Sandbox Code Playgroud)

...(例如)您将收到一堆与不同谷歌聊天服务器相关的SRV记录.

有没有人有这方面的经验,可能知道如何使用iPhone SDK提供这些信息(主机名,端口,重量,优先级)?我已经尝试过Bonjour课程,但至今没有运气..

谢谢!

Aln*_*tak 11

我相信你需要使用DNSServiceDiscovery框架.我没有iPhone SDK,但谷歌搜索表明它可以在iPhone上使用.

有关完整的API详细信息,请参阅Apple Developer Site .

我也包含了一些(不完整的)示例代码:

#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);
}
Run Code Online (Sandbox Code Playgroud)

您需要提供自己的回调函数,并注意rdata发送到回调的字段是有线格式的,因此您必须自己解码SRV记录字段中的原始数据.