虚拟化和复制 Qt 应用程序 20 次

Virtualise and duplicate Qt application 20 times

我想虚拟化和复制我在 Qt 上用 C++ 开发的应用程序(Windows 使用 Qt 5.9.1)。 该应用程序已经开发,我想复制它 20 次。

注意:应用程序的每个实例都需要有不同的 IP 地址,因为我的应用程序使用网络工作。

我考虑过使用 openVz 或 Docker。虚拟化和复制应用程序的最佳方式是什么?

您需要命令 fork() 来创建具有不同 pid 的新实例。

一个很好的例子:fork() in C++

您可以编写一个 bat/vb 脚本,它将 运行 您的应用程序 docker 循环 20 次,自定义网络设置类似于 docker network create

您不需要这些工具。

首先要做的是取消人为的“1 个应用程序”限制。默认情况下,Windows 允许同一个 运行 程序的多个实例,因此您做了一些事情来阻止它。别这样了。

接下来要做的就是给机器分配20个IP地址。这完全符合您的要求。

最后,您需要 bind 到特定的 IP 地址而不是 0.0.0.0。枚举所有可用的接口,并以随机顺序尝试它们。 (效率——如果你以相同的顺序尝试它们,所有 20 个实例都会尝试获取第一个 IP,其中 19 个会失败。第二次尝试时,18 个会失败。随机化意味着大多数实例都会尝试几次绑定) .