我几乎直接从dns-sd SDK示例中获取了此代码,但找不到我要搜索的服务。
没有错误,只是没有调用任何回调。这与Windows 10 x32上的Apple Bonjour SDK链接。
如果我运行“ dns-sd -B _http._tcp”,它将发现许多实例!
void DNSSD_API IterateServiceInstances(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
DNSServiceErrorType errorCode,
const char * serviceName,
const char * regtype,
const char * replyDomain,
void * context)
{
puts("IterateServiceInstances is never called!");
}
void DiscoverSegments()
{
printf("Discovering Segments...");
DNSServiceRef client = NULL;
DNSServiceErrorType err;
err = DNSServiceBrowse(&client,
0,
0,
"_http._tcp",
"",
IterateServiceInstances,
NULL);
if (kDNSServiceErr_NoError != err)
printf("Error: Unable to enumerate Bonjour to find devices.\n");
int main(int argc, char ** argv)
{
DiscoverSegments();
}
答案 0 :(得分:0)
因为您的套接字消息循环必须跟踪所有套接字句柄(客户端服务引用)并在打开时将其全部泵出...