ios - 苹果卓悦 : how can I tell which published service is my own?

标签 ios bonjour nsnetservice nsnetservicebrowser

我有两台 iOS 设备使用 Bonjour API 成功找到对方,但由于它们同时发布和浏览,它们也看到自己出现在可用服务列表中。每个端点必须有一些信息可以用来确定服务是他们自己的服务并将其从他们的列表中排除......我确定我只是在某个地方错过了它 - 有什么想法吗?

我用过the examples from the docs有一些小的变化。

最佳答案

mDNS 不区分设备边界 - 默认情况下,链接本地网络上的每个 mDNS 解析器都会监听发送到 224.0.0.251所有多播数据包起源。把它想象成一个美化的短波 radio 。嗯,有点。

这意味着当您浏览服务时,NSNetServiceBrowser 不会区分主机(有时我发现这是服务器端应用程序中的一个有用功能)。

我建议忽略您自己的服务的最简单方法是检查 netServiceBrowser:didFindService:moreComing 中返回的 NSNetService 对象的 hostname : 在做任何你需要用它做的事情之前回调不是你的。

关于ios - 苹果卓悦 : how can I tell which published service is my own?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7723801/

相关文章:

ios - 解析 : withoutDataWithClassName is now outDataWithClassName?

ios - 在两个iPhone之间复制核心数据数据库

ios - NSNetServiceBrowsing 无法解析服务并出现错误 -72004

ios - 设置键盘首字母大写

iphone - 限制要显示的表格单元格数量

iphone - 用于 iPhone 到 Mac 集成的 CFNetwork 和 Bonjour 集成

bonjour - 在其他机器上找不到 JmDNS 服务

ios - 不同时读取数据GCDAsyncSocket

iphone - 如何判断与iPhone的连接方式是蓝牙还是WiFi?

iphone - 提交应用程序 - 添加本地化,​​但组合框中未列出我的语言?