【问题标题】:iOS : DNS SRV lookup using DNSServiceQueryRecordiOS:使用 DNSServiceQueryRecord 查找 DNS SRV
【发布时间】:2016-05-31 23:42:32
【问题描述】:

我打算使用苹果的 DNSServiceQueryRecord 来解析 SRV 记录。我看到每个从 SRV 查找返回的记录调用传递给此方法的回调一次。我怎么知道查询已经完成并且所有记录都返回了?

Apple 的文档供您参考。

https://developer.apple.com/library/mac/documentation/Networking/Reference/DNSServiceDiscovery_CRef/index.html#//apple_ref/c/func/DNSServiceQueryRecord

【问题讨论】:

  • 查询会无限期地运行,直到您终止它,因为新服务可能随时出现。您需要决定何时有“足够”的答案。这可能是在您获得 1 个答案后、一段时间后或用户/应用退出您的发现视图时
  • 快速问题完全确定:这是一种阻塞方法还是非阻塞方法?
  • 非阻塞。这就是为什么它有回调函数
  • 感谢您的意见。

标签: ios dns srv


【解决方案1】:

我想指出处理DNS结果的方法“DNSServiceProcessResult”是阻塞的。我使用 select() 来查看套接字中是否接收到数据以调用 DNSServiceProcessResult。这使得该方法畅通无阻。我检查socket中是否有数据2秒,如果我没有得到任何结果,我取消查询。

【讨论】:

猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多