1

我有一个绑定到的 TCP 套接字127.0.0.1,我想让它作为本地机器上的服务可用。然而问题是 Bonjour 使用 DHCP 地址而不是 localhost,即使kDNSServiceInterfaceIndexLocalOnly设置为接口也是如此。这使我无法实际连接到套接字。

那么如何使服务解析为127.0.0.1而不是192.168.xxx.xxx

我在 C++ 中使用适用于 windows 的最新 bonjour SDK,尽管它应该在所有操作系统上都一样。

目前我只使用以下函数调用来注册服务:

DNSServiceRef ref = m_Impl->m_ConnectionRef.get();
DNSServiceRegister(&ref, kDNSServiceFlagsShareConnection, // Handles and flags
    kDNSServiceInterfaceIndexLocalOnly, a_Name.c_str(), a_Service.GetServiceType().c_str(), nullptr, // Service name and type
    nullptr, HostToBigEndian(a_Service.GetPort()), // Host address
    static_cast<uint16>(a_Service.GetTXTRecord().GetRecord().length()), a_Service.GetTXTRecord().GetRecord().c_str(), // TXT record
    &MDNSServiceManagerImpl::StaticDNSServiceRegisterReply, service.get()); // Callback

我尝试将"127.0.0.1"其作为主机名而不是nullptr.

4

0 回答 0