我有一个 c++ win32 程序,它使用套接字从服务器下载一些数据。
在 Windows 上使用套接字之前,必须调用 WSAStartup。MSDN 说:“每次成功调用 WSAStartup 都必须调用 WSACleanup。只有最终的 WSACleanup 函数调用执行实际的清理。”
对我来说最简单的方法是每次从服务器下载数据时调用 WSAStartup/WSACleanup。大多数情况下,一次只有一个连接,因此 WSACleanup 将执行实际的清理。
这就是为什么我想知道 WSAStartup 和 WSACleanup 的成本是多少?我的意思是执行实际的清理。如果与整个套接字连接相比,对 WSAStartup 和 WSACleanup 的调用只持续很短的时间,那么我可以使用简单的方法。如果没有,我应该注意仅在退出程序时调用 WSACleanup。