【发布时间】:2013-10-25 07:18:48
【问题描述】:
我们希望为我们的应用程序添加“协作”功能,因此我们的程序应该能够自动发现在同一本地网络上运行的所有其他自身实例,而无需用户进行任何额外配置。
我们的应用程序在 Windows 上运行,因此它可以使用操作系统提供的任何 API。我们假设一个小型企业的典型网络、几台 Windows PC、一些路由器等。
另外,防病毒、防火墙等会不会有问题?我们不想吓到我们的用户。
【问题讨论】:
-
我不确定,但这项技术是否有帮助:en.wikipedia.org/wiki/Bonjour_(software) ?
-
WixToolset.org 了解如何编写适当的 Windows 安装程序包来处理防火墙异常注册。通过 Wix,您可以制作不会吓到用户的适当 MSI 和/或 Setup.exe。
-
@selbie:您实际上并不需要防火墙例外。目标是避免在探测本地网络时触发警报,根据定义,本地网络在中间没有防火墙 - 只是在边缘。
-
@MSalters 我认为 Bonjour 还需要监听一个端口,否则它如何找到其他实例?我假设每个实例都使用广播地址,并且每个实例还监听来自其他实例的广播。 Bonjour 不就是这样工作的吗?
标签: c++ windows qt network-programming