【发布时间】:2011-04-28 19:30:50
【问题描述】:
我在端口 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 的建议:是的,当它停止/消失时,它会“为所有客户”停止。我想我实际上不知道如何以编程方式(在服务器上)判断它是否“未注册”。
【问题讨论】:
-
既然你在写 Obj-C,你为什么用 CoreNetwork 而不是 NSNetService API 的?
标签: iphone ios networking bonjour