iphone - 使用 iPhone SDK 查找 SRV 记录

标签 iphone objective-c cocoa-touch dns

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

nslookup -type=SRV _xmpp-server._tcp.gmail.com

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

有没有人在这方面有经验并且可能知道如何使用 iPhone SDK 处理这些信息(主机名、端口、权重、优先级)?我已经尝试过 Bonjour 类(class),但还没有成功..

谢谢!

最佳答案

我相信您需要使用 DNSServiceDiscovery 框架。我没有 iPhone SDK,但 Google 搜索表明它可以在 iPhone 上使用。

请参阅 Apple 开发者网站以获取 full API details .

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

#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 的原始数据自己记录字段。

关于iphone - 使用 iPhone SDK 查找 SRV 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/258284/

相关文章:

objective-c - 如何将光标位置向前移动特定长度?

iphone - XCode 4,错误和警告

iphone - iPhone 移动应用程序管理

ios - 登录时禁用(登录)按钮

ios - 如何在用户区域更改时获得通知?

ios - 可以皮肤 iPhone 主(桌面)界面/背景吗?

iphone - 需要 TableViewCell 在被触摸时闪烁

iphone - 对基于文档的 iPhone 应用程序指南感到困惑

iphone - 存储和检索数据

iphone - 为什么在 dismissViewControllerAnimated 之后父框架没有保持相同的大小?