我有正在运行TCP服务器的应用程序。要初始化TCP,请运行WSAStartup()。然后,我需要加载第三方dll。 Dll也可以完成一些TCP工作,并且有一些bug-它运行WSACleanup()而不运行WSAStartup()。由于DLL的WSACleanup()将其杀死,因此该错误使我的TCP服务器刹车。

我无法修复dll。如何避免这种情况。看起来运行使用dll和我的TCP服务器在不同的线程中没有帮助

最佳答案

如您在WSAStartup doc中看到的,WSAStartup / WSACleanup执行内部引用计数。因此,您要做的就是两次调用WSAStartup

因此,当您的库调用WSACleanup时,它只会将内部计数减少1,而不会释放所有资源。

关于c++ - 大量调用WSACleanup()将杀死WSAStartup(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23215934/

10-12 23:50