Служба Apple Bonjour привязана к локальному хосту

У меня есть TCP-сокет, связанный с 127.0.0.1и я хочу сделать его доступным в качестве службы на локальной машине. Проблема, однако, в том, что Bonjour использует адрес DHCP вместо localhost, даже если kDNSServiceInterfaceIndexLocalOnly установить в качестве интерфейса. Это мешает мне на самом деле подключиться к розетке.

Так как мне сделать так, чтобы служба разрешала 127.0.0.1 скорее, чем 192.168.xxx.xxx?

Я использую последнюю версию Bonjour SDK для Windows на C ++, хотя она должна работать одинаково на всех операционных системах.

В настоящее время я использую только следующий вызов функции для регистрации службы:

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, но, как говорится в комментариях API, вам придется вручную добавлять записи, и именно здесь я заблудился.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]