我们开发了一个使用 TCP 和 UDP 套接字的网络库。此 DLL 由 testclient 使用,该客户端在同一台 PC 上多次启动以进行负载测试。
在 Windows Vista 中,多次启动 testclient 是没有问题的。在 Windows XP 中,启动它最多 5 次是没有问题的,但是如果我们启动它 6 次或更多,然后关闭一个客户端,它们都会崩溃并带有明显的随机堆栈跟踪。
是的,虽然我们不使用任何进程间代码(仅客户端之间的套接字),但其中一个客户端的终止会导致所有客户端的崩溃。
我们的 DLL 使用 MSVC 编译并使用 Boost 和 Crypto++ 库(静态链接)。
知道为什么不同的过程会相互影响吗?