首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSAStartup和WSACleanup的成本是多少?

WSAStartup和WSACleanup的成本是多少?
EN

Stack Overflow用户
提问于 2008-12-28 18:12:05
回答 3查看 6.6K关注 0票数 9

我有一个c++ win32程序,它使用套接字从服务器下载一些数据。

在Windows上使用套接字之前,必须调用WSAStartup。MSDN说:“每次成功调用WSAStartup,都必须调用一次WSACleanup。只有最后一个WSACleanup函数调用才会执行实际的清理。”

对我来说,最简单的方法是在每次从服务器下载大量数据时调用WSAStartup/WSACleanup。大多数情况下,一次只有一个连接,因此WSACleanup将执行实际的清理。

这就是为什么我想知道,WSAStartup和WSACleanup的成本是多少?我的意思是执行实际的清理。如果与整个套接字连接相比,对WSAStartup和WSACleanup的调用只持续了很短的时间,那么我可以使用简单的方法。如果不是,我应该注意仅在退出程序时调用WSACleanup。

EN

回答 3

Stack Overflow用户

发布于 2008-12-28 18:37:54

WSAStartup()加载所需的dll。但是如果已经加载了dll,WSAStartup()只会增加一个计数器。WSACleanup()减少计数器,并在计数器达到零时释放dll。

您应该在应用程序的初始化函数中调用WSAStartup(),并在退出应用程序之前调用WSACleanup()。

票数 14
EN

Stack Overflow用户

发布于 2008-12-29 01:17:22

只需调用WSAStartup一次,就永远不会清理。说真的,这是Win3.1和Win32s遗留下来的架构。

票数 3
EN

Stack Overflow用户

发布于 2009-02-16 11:00:51

使用RAII仅在应用程序启动时加载它们一次,然后在您退出时释放它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/396484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档