在Windows上使用Bonjour/DNS-SD

7

我目前正在开发一个跨平台应用程序(Win / OSX / iOS),它具有C++(带Boost)后端。 在iOS和OSX上,我使用Cocoa Net Service Browser Delegate函数通过mDNS发现嵌入式设备,然后将信息传递给后端以创建需要与其通信的对象。

我希望在Windows MFC前端采用类似的方法,我找到了this文章,看起来正是我想要的。 但是,使用Bonjour SDK会产生一些非常严重的副作用- 强制您静态链接到MFC,并且在我的情况下,唯一可以使其正确链接的方法是根本不使用调试DLL,这并不理想。

因此,Bonjour SDK对我来说并不是很好,因为它对我的项目施加了太多限制。 使用Cocoa时,我实际上仅使用了极少量的功能-只是didFindService和netServiceDidResolveAddress而已。 我想做的就是查找给定类型的设备并获取其IP地址。

有人能建议另一种解决方案吗?可以在Windows上使用MFC前端工作。

1个回答

8

谢谢,这基本上就是我最终所做的。我已经从源代码构建了DLL,并链接到该DLL而不是系统DLL。这并不理想,因为我将不得不随产品一起发布编译后的DLL,但它确实避免了必须确保Bonjour已安装的问题。这真是太遗憾了 - 在OSX和iOS上这是如此简单明了。 - Redeye
3
请注意,tarballs 可在此处获取:http://www.opensource.apple.com/tarballs/mDNSResponder/ - Patrick
嘿,大家好!我知道这个问题很老了,但我有一个愚蠢的问题:如果你自己编译dll,你仍然需要安装Bonjour服务,对吗? - Shchvova
2
@Shchvova 真的很老派啊!是的,你仍然需要Bonjour服务。 - nelsonjchen
@Patrick 你是真正的MVP - user614273
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接