windows上Bonjour服务发布的一些坑

windows上Bonjour服务发布的一些坑

1.遇到的问题

单独发布信息从某个网卡上出去后,会出现自动消失,并且有时会跑到另外一张网卡上
DNSServiceRegister注册服务时回调一直未触发

2.解决方案

dnssd.exe它可以监听到服务的Add和Rmv
源码中使用的是DNSServiceBrowse

因此可以使用DNSServiceBrowse先监听本地要发布的服务,监听到后再判断网卡是否是要发布的网卡,再重新注册
验证后发现大概率出现DNSServiceBrowse监听的fd失效,最终采用检测到失效后再重新监听

此方案验时发现经过长时间煲机会出现bonjour Server的崩溃 关闭,此时放弃了,选择发布所有网卡,没出现什么问题,这个问题应该是 mDNSResponder的bug

还有两个方案未进行验证:
1、在使用过程中,发现它自己的dnns-d应用监听只会小概率出现崩溃,猜想把监听服务的功能做成一个进程,再进行保活可能会解决问题

2、mDNSResponder中提供了Linux发布服务的demo,可以单独将服务抽出来进行发布,并在update处选择要发布的网卡

3.Bonjour的发布流程

在这里插入图片描述

4.参考代码

https://opensource.apple.com/tarballs/mDNSResponder/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值