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

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

这也可以完美运行,并且设备可以看到Bonjour广告,然后在66662进行连接。

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

但是... ...我发现-在66662-之后,66661的bonjour广告是flakey

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

在开始第二个Bonjour广告之后,有人在Bonjour中看到过这种苦涩味吗?

一种变通方法。.在66662满意之后,我为66661创建了另一个相同的Bonjour广告。与先前的Bonjour代码广告66661完全相同。

这个似乎不会造成问题,并且确实,在iOS批量应用上确实可以完美地工作,没有任何抱怨,崩溃等情况。但这很奇怪。

问题1,我相信技术说明QA1333 建议,完全可以两次或多次发生此类Bonjour事件。有人知道吗,DTS解决了这个问题吗?

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

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

根据Kevin的建议:是的,我们使用Bonjour Browser之类的工具和众多设备/ Mac对其进行了全面测试。

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

最佳答案

尝试从局域网中的任何Mac在终端中运行dns-sd -B _blah._tcp. .。这将打开该服务的查询,您可以观看“添加”和“删除”事件的来历。这是一种验证您的服务是否已明确注销的好方法,而不是(仅作为示例)一旦新客户端开始侦听该事实后,广播就不会正确广播。

10-08 13:49