-2

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

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

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

4

3 回答 3

1

你不需要这些工具。

要做的第一件事是删除人为的“1 个应用程序”限制。默认情况下,Windows 允许同一运行程序的多个实例,所以你做了一些事情来阻止它。停止这样做。

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

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

于 2018-05-23T14:21:17.943 回答
0

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

于 2018-05-23T11:15:19.867 回答
0

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

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

于 2018-05-23T10:50:48.497 回答