iphone - 需要 Bonjour 两次?

标签 iphone ios networking bonjour

我在端口 66661 上启动了一个 TCP 监听服务器。我为此创建了一个 Bonjour 通知。没问题。

在任何人连接到 66661 之前,该应用程序会在另一个端口上创建另一个不相关的网络服务(另一个 TCP 监听服务器),并以相同的方式创建一个 Bonjour 广告,这次是在 66662 上。

这也很完美,设备可以看到 Bonjour 广告,然后连接到 66662。

请注意,66661 应该并且确实可以正常工作,允许其他类型的播放器在那里连接...没问题。

但是......我发现 - 在 66662 之后 - 66661 的 bonjour 广告很古怪

有时存在/有时消失。(我们无法找到确切的模式。)

在开始第二个 Bonjour 广告后,有人在 Bonjour 中看到过这种轻浮吗?

变通解决方案.. 在 66662 满意之后,我为 66661 创建了另一个相同的 Bonjour 广告。完全重复之前的 Bonjour 代码广告 66661。

似乎不会造成任何问题,事实上,确实在大量 iOS 应用程序上完美运行,没有任何投诉、崩溃等问题。但这很奇怪。 p>

问题 1,我相信技术说明 QA1333 表明制造两个或更多此类 Bonjour 事件是完全可以的。任何人都知道这个,这是正确的,曾经对这个问题进行过 DTS 处理吗?

问题 2,为什么在您创建了另一个 Bonjour 广告的情况下,第一个 Bonjour 广告会停止工作 - 有时是,有时不是?

有人看过吗?有任何想法吗?干杯。

根据 Kevin 的建议:是的,我们使用 Bonjour 浏览器和许多设备/Mac 等工具对此进行了彻底测试。

根据 Jarrod 的建议:是的,当它确实停止/消失时,它会“为所有客户”停止。我想我实际上不知道如何以编程方式(在服务器上)判断它是否“未注册”。

最佳答案

尝试运行 dns-sd -B _blah._tcp。 . 在您 LAN 上的任何 Mac 的终端中。这将打开对该服务的查询,您可以看到 Add 和 Remove 事件的发生。这是验证您的服务是否被显式注销的好方法,而不是(仅作为示例)一旦新客户开始收听后就没有正确广播。

关于iphone - 需要 Bonjour 两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823945/

相关文章:

iphone - 过渡到以编程方式查看 ios

iOS UIAlertController 中断动画

networking - B 类和 C 类有多少个网络?

Azure Vnet 专用 IP 范围

javascript - "Run JavaScript on Web Page"的 iOS 12 快捷方式设置问题

image - 无法加载 YouTube 缩略图的网络图像 Flutter Web

iphone - 在 iphone/Objective C 中生成 SHA256 ...?

ios - 隐藏或移动选定的 Cell 并在 UItableView 的 indexPath.row 中加载一个新的自定义 Cell

iphone - 在 iOS 上添加与 tiff 文件的文件关联

ios - 检测在 tableview : Swift Best Practices 中按下的 uibutton