gpt4 book ai didi

c++ - DNSServiceBrowse 两次列出相同的服务,但 interfaceIndex 不同

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:11 25 4
gpt4 key购买 nike

我使用

注册 Bonjour 服务
DNSServiceRegister(&dnssref, 0, 0, "Fortune Server on my-PC", "_trollfortune._tcp", 0, 0, bigEndianPort, 0, 0, 0, 0);

然后我浏览它使用

DNSServiceBrowse(&dnssref, 0, 0, "_trollfortune._tcp", 0, bonjourBrowseReplyCallback, this);

我的 callback function被调用两次,具有相同的serviceNameregTypereplyDomain,只有interfaceIndex 不同,第一次是20,第二次是10000010if_indextoname() 为两者返回 ethernet_12

同时,Bonjour Browser (我在 Internet 上找到的一个工具)显示我的服务只列出一次。

我是否使用了错误的参数调用 DNSServiceBrowse?

最佳答案

我在我的案例中发现了问题。

问题是在安装 VMware 后出现的。它创建了一些虚拟网络接口(interface)。禁用这些接口(interface)后,浏览器只显示一个结果。

但我认为问题与浏览无关。我认为问题在于标志 kDNSServiceInterfaceIndexAny(0 - 第 3 个参数) 发送到函数 DNSServiceBrowse 也许您需要将接口(interface)设置为固定值而不是 0。

关于c++ - DNSServiceBrowse 两次列出相同的服务,但 interfaceIndex 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com