gpt4 book ai didi

c++ - WSACleanup 和 atExit

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:37 24 4
gpt4 key购买 nike

通过 atExit 函数注册 WSACleanup 可以吗?我们有几个应用程序可以在代码中的不同点终止,因此我们希望避免在整个代码中到处放置 WSACleanup。目前我们通过 DllMain 调用 WSAStartup/WSACleanup 因为我们有一个 dll 被所有这些应用程序使用。但是,Microsoft 严格建议不要通过 DllMain 使用 WSAStartup/WSACleanup,因为这会导致死锁。我们可以将 WSAStarup 移出 DllMain,并在所有应用程序访问 Windows 套接字库之前在代码中的某个位置调用它。而且,一旦我们调用 WSAStartup,我们就想使用 atExit 函数来注册对 WSACleanup 的调用。有没有人对这种方法有任何经验?谢谢!

最佳答案

如果您有一个多线程应用程序并且某些线程仍处于连接状态,则另一端的应用程序可能不喜欢连接终止的方式。因此,最好在 main() 终止之前以有序的方式关闭所有通信,并且当您这样做时,您也可以调用 WSACleanup。

关于c++ - WSACleanup 和 atExit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/968838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com